公共虚拟成员函数
<system_error>

std::error_category::equivalent

(1)
virtual bool equivalent (int valcode, const error_condition& cond) const noexcept;
(2)
virtual bool equivalent (const error_code& code, int valcond) const noexcept;
检查错误码是否等效
检查对于类别,错误码是否等效于错误条件

错误条件 对象与 错误码 对象进行比较以检查相等性或不等性时,比较运算符的重载会调用此函数。如果其中任何一个对象的 类别 认为另一个对象使用此函数等效,则运算符认为它们是等效的。

它在基类 error_category 中的定义等效于
1
2
3
4
virtual bool equivalent (int valcode, const error_condition& cond) const noexcept
{ return default_error_condition(valcode) == cond; }
virtual bool equivalent (const error_code& code, int valcond) const noexcept
{ return *this==code.category && code.value()==valcond; }

作为虚拟成员函数,可以在派生类中覆盖此行为,以为每个 error_category 类型定义不同的对应机制。

可以使用其关系运算符成员函数直接比较两个 error_category 对象。

参数

code
错误码类型的对象。
cond
错误条件类型的对象。
valcode
一个用于标识错误码的数值。
valcond
标识错误条件的数值。
如果 error_category 对象是 generic_category,则此参数等效于 errno 值(有关标准值列表,请参见 errc)。

返回值

如果参数被认为是等效的,则为 true
否则返回 false

另见