公共虛擬成員函式
<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

另見