[英]What is the difference between boost::system::error_code and boost::system::error_code::value()?
例如,下面的代碼編譯。 test1
總是等於test2
嗎?
boost::system::error_code ec = foo()
bool test1 = ec.value() == boost::asio::error::would_block;
bool test2 = ec == boost::asio::error::would_block;
不。
類別將不匹配。 事實上,將兩者連接起來非常棘手,因為類別是全局單例,但由於靜態不同的類型,它們不能共享。
Boost 類型存在的原因是它們早於各種平台上的標准化/供應商實施。
如果您需要將 boost::system::error_code 作為 std::error_code 傳遞,請參閱此處了解如何使用 shim 類別來混合這兩種類型:
是否可以將 boost::system::error_code 轉換為 std:error_code?
使用value()
不是很安全,因為它只是刪除所有類別信息並返回處理錯誤是int
。 這似乎很長一段時間都像一個魅力,直到你遇到來自不同類別的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.