2
我有一个方法返回一个std::error_code
。我对错误消息并不特别感兴趣,只关心该方法是否成功。如何测试std :: error_code不是错误?
测试std::error_code
代表成功操作的最佳方法是什么?
我有一个方法返回一个std::error_code
。我对错误消息并不特别感兴趣,只关心该方法是否成功。如何测试std :: error_code不是错误?
测试std::error_code
代表成功操作的最佳方法是什么?
我在使用ASIO库时遇到过类似的情况。至于什么one of their blog posts表明,std::error_code
是为了进行测试,如下所示:
std::error_code ec;
// ...
if (!ec)
{
// Success.
}
else
{
// Failure.
}
已经挖得更深一些,我发现C++标准谷歌组,这证实了上述而且本声明this(更近)的讨论引发了关于std::error_code
的当前设计是否足够简单的问题。长话短说,如果你需要简单地告诉成功的错误,你需要的是!static_cast<bool>(errorCode)
。
你试过std :: error_code :: operator bool()吗? http://en.cppreference.com/w/cpp/error/error_code/operator_bool – roalz
“true”表示成功还是失败? – sdgfsdh
“如果value()== 0,则返回false,否则返回true。”至于什么值==零意味着:“std :: error_code是一个平台相关的错误代码” – roalz