如何测试std :: error_code不是错误?

时间:2017-01-17 14:12:02

标签: c++

我有一个返回std::error_code的方法。我对错误消息不是特别感兴趣,只是方法是否成功。

测试std::error_code代表成功操作的最佳方法是什么?

1 个答案:

答案 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)就是你需要的。