C++ 错误代码与错误条件

C++ 错误代码与错误条件,c++,c++11,C++,C++11,我不太明白为什么我们需要区分错误代码(std::error\u code)和错误条件(std::error\u condition),它们不是一回事吗?错误条件与错误代码相比有哪些优点?来自 std::error_条件是与平台无关的错误代码。喜欢 std::error_代码,由整数值和 std::error_类别,但与std::error_代码不同,该值不是 平台相关 因此,使用std::error:condition时,错误代码并不特定于您正在使用的平台 带有std::error\u code

我不太明白为什么我们需要区分错误代码
(std::error\u code)
和错误
条件(std::error\u condition)
,它们不是一回事吗?错误条件与错误代码相比有哪些优点?

来自

std::error_条件是与平台无关的错误代码。喜欢 std::error_代码,由整数值和 std::error_类别,但与std::error_代码不同,该值不是 平台相关

因此,使用
std::error:condition
时,错误代码并不特定于您正在使用的平台

带有
std::error\u code

每个std::error\u code对象都包含一对错误代码 从操作系统或一些低级接口

因此,
error\u code
将引用特定于您的平台、硬件等的内容

两者都使用可能是有利的。
error\u条件
是“可移植的抽象”,因此将是提供给用户的通用错误消息,
error\u条件
将是对特定调试有用的平台相关信息

[error_condition]的典型实现包含一个整数数据成员(值)和 指向std::error\u类别的指针


我在这里找到的这个问题的最简单答案是:

  • class
    std::error\u code
    -表示操作(如系统调用)返回的特定错误值
  • class
    std::error\u condition
    -您希望在代码中测试并可能对其作出反应的内容
我认为它也适用于C++11