名前空間
変種
操作

std::is_error_code_enum<std::io_errc>

提供: cppreference.com
< cpp‎ | io‎ | io errc
 
 
入出力ライブラリ
入出力マニピュレータ
Cスタイルの入出力
バッファ
(C++98で非推奨)
ストリーム
抽象
ファイル入出力
文字列入出力
配列入出力
(C++98で非推奨)
(C++98で非推奨)
(C++98で非推奨)
同期化出力
エラーカテゴリインタフェース
(C++11)
 
std::io_errc
非メンバ関数
ヘルパークラス
is_error_code_enum<std::io_errc>
 
ヘッダ <ios> で定義
template< >
struct is_error_code_enum<std::io_errc> : public std::true_type { };
(C++11以上)

この std::is_error_code_enum の特殊化は std::io_errc 型の値がエラーコードを保持する列挙であることを他のライブラリコンポーネントに知らせます。 これにより std::io_errc 型の値が std::error_code 型のオブジェクトに暗黙に変換可能および代入可能になります。

目次

std::integral_constant から継承

メンバ定数

value
[静的]
true
(パブリック静的メンバ定数)

メンバ関数

operator bool
オブジェクトを bool に変換します。 value を返します
(パブリックメンバ関数)
operator()
(C++14)
value を返します
(パブリックメンバ関数)

メンバ型

定義
value_type bool
type std::integral_constant<bool, value>

[編集]

std::is_error_code_enum<std::io_errc>::value == true であるため e.code()std::io_errc::stream の比較がコンパイルできます。

#include <iostream>
#include <fstream>
int main()
{
    std::ifstream f("doesn't exist");
    try {
        f.exceptions(f.failbit);
    } catch (const std::ios_base::failure& e) {
        std::cout << "Caught an ios_base::failure.\n";
        if(e.code() == std::io_errc::stream)
            std::cout << "The error code is std::io_errc::stream\n";
    }
}

出力:

Caught an ios_base::failure.
The error code is std::io_errc::stream

[編集] 関連項目

クラスを error_code 列挙型として識別します
(クラステンプレート) [edit]
プラットフォーム依存のエラーコードを保持します
(クラス) [edit]
(C++11)
iostream のエラーコード
(列挙) [edit]