名前空間
変種
操作

std::error_condition

From cppreference.com
< cpp‎ | error
 
 
ユーティリティライブラリ
言語サポート
型のサポート (基本型、RTTI)
ライブラリ機能検査マクロ (C++20)
プログラムユーティリティ
可変引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
 
 
 
ヘッダー <system_error> で定義
class error_condition;
(C++11以降)

std::error_condition は、プラットフォーム非依存のエラー条件を識別する値を保持します。std::error_code と同様に、整数値と std::error_category によって一意に識別されますが、std::error_code とは異なり、値はプラットフォームに依存しません。

典型的な実装では、1つの整数データメンバー(値)と std::error_category へのポインターを保持します。

目次

[編集] メンバー関数

error_condition を構築します
(public メンバー関数) [編集]
内容を置き換えます
(public メンバー関数) [編集]
内容を置き換えます
(public メンバー関数) [編集]
error_conditiongeneric_category の値 0 に設定します
(public メンバー関数) [編集]
error_condition の値を取得します
(public メンバー関数) [編集]
この error_conditionerror_category を取得します
(public メンバー関数) [編集]
説明文字列を取得します
(public メンバー関数) [編集]
値が非ゼロであるかをチェックします
(public メンバー関数) [編集]

[編集] 非メンバー関数

(C++20で削除)(C++20で削除)(C++20)
error_conditionerror_code を比較します
(関数) [編集]

[編集] ヘルパークラス

列挙型を std::error_condition として識別します
(クラステンプレート) [編集]
std::error_condition のハッシュサポート
(クラステンプレート特殊化) [編集]

[編集] 備考

std::error_codestd::error_condition比較は、そのエラーカテゴリによって定義されます。特に、std::generic_category のエラー条件は、同じ種類のエラーを表す場合、特定のカテゴリ(例:std::system_category)のエラーコードと比較して等しくなることがあります。

std::errc の値は、std::error_condition への暗黙の変換を介してエラーコードと比較できます。

#include <cerrno>
#include <iostream>
#include <system_error>
#include <Windows.h>
 
int main()
{
    std::error_code ec{ERROR_FILE_EXISTS, std::system_category()};
    std::error_condition econd{EEXIST, std::generic_category()};
 
    std::cout.setf(std::ios::boolalpha);
    std::cout << (ec == econd) << '\n'; // typically true
    std::cout << (ec == std::errc::file_exists) << '\n'; // ditto
    std::cout << (ec == make_error_code(std::errc::file_exists)) << '\n'; // false:
                                                                     // different category
}

実行結果の例

true
true
false

[編集] 関連項目

プラットフォーム依存のエラーコードを保持する
(クラス) [編集]
エラーカテゴリの基底クラス
(クラス) [編集]
errce のエラー条件を作成します
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)