2013-05-22 75 views
22

我不完全明白爲什麼我們需要區分錯誤代碼(std::error_code)和錯誤condition(std::error_condition),它們不是一回事嗎?錯誤條件與錯誤代碼的優點是什麼?錯誤代碼與錯誤情況

回答

11

http://en.cppreference.com/w/cpp/error/error_condition

的std :: error_condition是一個獨立於平臺的錯誤代碼。像 std :: error_code,它由一個整數值和一個 std :: error_category唯一標識,但與std :: error_code不同,該值不是 與平臺相關。

所以,優點是您的錯誤代碼不是特定於您使用std::error:condition時正在使用的平臺。

隨着std::error_code

每個的std :: ERROR_CODE對象持有對錯誤代碼從操作系統,或一些低級別接口

所以始發 ,所述error_code將引用特定於您的平臺的東西,硬件等等。

使用兩者都可能是有利的。 error_condition是「便攜式抽象」,所以會給用戶一般的錯誤信息,並且error_code將是平臺相關的信息,對於特定的調試很有用。

一個典型的[error_condition]實現包含一個整型數據成員(值)和一個指向std :: error_category的指針。

+0

有沒有人在同一個房間同時看到Jimbo和StoryTeller? – user93353

+0

哈哈是啊,這是一個很好的不是嗎? – Jimbo