gpt4 book ai didi

c++ - 断言中的 Lambda

转载 作者:太空狗 更新时间:2023-10-29 23:36:50 26 4
gpt4 key购买 nike

是否可以在调用 assert() 时使用 lambda?

当我尝试以下...

assert([&]() -> bool{
sockaddr_storage addr; int addrlen = sizeof(addr);
return (getsockname(this->m_Socket, (sockaddr*)&addr, &addrlen) != 0) ? false : true;
});

...我得到了错误

error C2675: unary '!' : '`anonymous-namespace'::' does not define this operator or a conversion to a type acceptable to the predefined operator

最佳答案

当然可以,但是断言实际上只需要一个 bool 值;不是 lambda,所以你必须自己调用它(假设你的 lambda 是返回你想要断言的东西的):

assert(([&]() -> bool{
sockaddr_storage addr; int addrlen = sizeof(addr);
return getsockname(this->m_Socket, (sockaddr*)&addr, &addrlen) == 0;
})());

关于c++ - 断言中的 Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12010415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com