Namespaces
Variants

std:: error_condition

From cppreference.net
Utilities library
定義先ヘッダ <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を構築する
(公開メンバ関数)
内容を置き換える
(公開メンバ関数)
内容を置き換える
(公開メンバ関数)
error_condition generic_category の値 0 に設定する
(公開メンバ関数)
error_condition の値を取得する
(公開メンバ関数)
この error_condition error_category を取得する
(公開メンバ関数)
説明文字列を取得する
(公開メンバ関数)
値が非ゼロかどうかをチェックする
(公開メンバ関数)

非メンバー関数

(removed in C++20) (removed in C++20) (C++20)
error_condition error_code を比較
(関数)

ヘルパークラス

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

注記

比較 は、 std::error_code std::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'; // 通常 true
    std::cout << (ec == std::errc::file_exists) << '\n'; // 同上
    std::cout << (ec == make_error_code(std::errc::file_exists)) << '\n'; // false:
                                                                     // 異なるカテゴリ
}

出力例:

true
true
false

関連項目

(C++11)
プラットフォーム依存のエラーコードを保持する
(クラス)
エラーカテゴリの基底クラス
(クラス)
errc 値に対するエラー条件を作成する e
(関数)