是否有可能在调用assert()
时使用lambda?lambda内部声明
当我尝试以下方法...
assert([&]() -> bool{
sockaddr_storage addr; int addrlen = sizeof(addr);
return (getsockname(this->m_Socket, (sockaddr*)&addr, &addrlen) != 0) ? false : true;
});
...我得到的错误
错误C2675:一元 '!' :“`匿名命名空间” ::”没有定义此运算符或转换到类型接受的 预先规定的操作
当然,但为什么?为什么不只是做你的工作,然后检查它? – Caesar 2012-08-17 17:34:29
您是否尝试过static_assert? – galadog 2012-08-17 17:34:37
@galadog:如何解决它?这是编译时。 – GManNickG 2012-08-17 17:35:12