是否有可能在調用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