我有一个返回std::error_code
的方法。我对错误消息不是特别感兴趣,只是方法是否成功。
测试std::error_code
代表成功操作的最佳方法是什么?
答案 0 :(得分:6)
我在使用ASIO库时遇到了类似的情况。正如one of their blog posts所暗示的那样,std::error_code
应按以下方式进行测试:
std::error_code ec;
// ...
if (!ec)
{
// Success.
}
else
{
// Failure.
}
深入挖掘后,我在C ++标准Google小组中找到this(更近期)讨论,这证实了上述陈述,但也提出了std::error_code
的当前设计是否为直截了当。
长话短说,如果你只需要告诉成功的错误,!static_cast<bool>(errorCode)
就是你需要的。