函数
<system_error>

std::关系运算符 (error_code)

vs error_code(1)
bool operator== (const error_code& lhs, const error_code& rhs) noexcept;bool operator!= (const error_code& lhs, const error_code& rhs) noexcept;bool operator<  (const error_code& lhs, const error_code& rhs) noexcept;
vs error_condition(2)
bool operator== (const error_code& lhs, const error_condition& rhs) noexcept;bool operator== (const error_condition& lhs, const error_code& rhs) noexcept;bool operator!= (const error_code& lhs, const error_condition& rhs) noexcept;bool operator!= (const error_condition& lhs, const error_code& rhs) noexcept;
关系运算符
返回 lhsrhs 之间关系运算的结果。

当比较涉及两个类型为 error_code 的对象时
  • 如果它们属于相同的 category,该函数返回对其关联的 应用适当运算符(==!=<)的结果。
  • 否则,该函数返回对其 类别 应用运算符(==!=<)的结果。

如果操作涉及 error_code 对象和 error_condition 对象,则该函数调用 error_category::equivalent 以确定它们是否等效。

这些函数的行为就像定义为
1
2
3
4
5
6
7
8
9
10
11
12
bool operator== (const error_code& lhs, const error_code& rhs) noexcept
{ return lhs.category()==rhs.category() && lhs.value()==rhs.value(); }
bool operator!= (const error_code& lhs, const error_code& rhs) noexcept { return !(lhs==rhs); }
bool operator<  (const error_code& lhs, const error_code& rhs) noexcept
{ return lhs.category()<rhs.category() || lhs.category()==rhs.category()&&lhs.value()<rhs.value(); }

bool operator== (const error_code& lhs, const error_condition& rhs) noexcept
{ return lhs.category().equivalent(lhs.value,rhs) || rhs.category().equivalent(lhs,rhs.value()); }
bool operator== (const error_condition& lhs, const error_code& rhs) noexcept
{ return lhs.category().equivalent(lhs.value,rhs) || rhs.category().equivalent(lhs,rhs.value()); }
bool operator!= (const error_code& lhs, const error_condition& rhs) noexcept { return !(lhs==rhs); }
bool operator!= (const error_condition& lhs, const error_code& rhs) noexcept { return !(lhs==rhs); }

参数

lhs, rhs
对象(分别位于运算符的左侧和右侧)。

返回值

如果条件成立,则为 true;否则为 false

另见