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