我不完全明白爲什麼我們需要區分錯誤代碼(std::error_code)
和錯誤condition(std::error_condition)
,它們不是一回事嗎?錯誤條件與錯誤代碼的優點是什麼?錯誤代碼與錯誤情況
22
A
回答
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的指針。
7
對這個問題的最簡單的答案我在這裏找到:http://blog.think-async.com/2010/04/system-error-support-in-c0x-part-5.html。
class error_code - 表示由 操作(例如系統調用)返回的特定錯誤值。 class error_condition - 你想測試的東西 ,並且可能會在你的代碼中作出反應。
我認爲它也適用於C++ 11。
相關問題
- 1. 如何在錯誤情況下處理對象銷燬與非錯誤情況
- 2. 錯誤與C#GUI代碼
- 3. 錯誤與EntityExpr代碼
- 4. 此錯誤代碼與GPIO
- 5. IE錯誤與jQuery代碼
- 6. 異常與錯誤代碼
- 7. 錯誤與PHP代碼?
- 8. 錯誤與Python代碼2.7.3
- 9. SQL錯誤的情況下
- 10. Android的情況下錯誤
- 11. 情況下,當錯誤
- 12. 錯誤代碼
- 13. 代碼錯誤
- 14. 錯誤代碼
- 15. 錯誤代碼
- 16. 錯誤代碼
- 17. 錯誤代碼
- 18. 錯誤代碼
- 19. 代碼錯誤代碼@CollectionId
- 20. 錯誤:分段錯誤(代碼轉儲)
- 21. ffmpeg的錯誤了,錯誤代碼:-5
- 22. Quantmod錯誤處理錯誤代碼
- 23. 錯誤代碼:1064 SQL語法錯誤
- 24. db2?查找錯誤DB2錯誤代碼
- 25. MySQL錯誤代碼1064語法錯誤
- 26. DocuSign VBA錯誤400錯誤代碼:ENVELOPE_IS_INCOMPLETE
- 27. Eclipse啓動錯誤 - 錯誤代碼13
- 28. PHP此錯誤代碼的錯誤
- 29. 錯誤onclick按鈕代碼錯誤?
- 30. 錯誤代碼+錯誤描述
有沒有人在同一個房間同時看到Jimbo和StoryTeller? – user93353
哈哈是啊,這是一個很好的不是嗎? – Jimbo