std::iostream_category
From cppreference.com
| ヘッダ <ios>で定義 |
||
| const std::error_category& iostream_category() noexcept; |
(C++11以降) | |
iostreamエラーのための静的なエラーカテゴリオブジェクトへの参照を取得します。このオブジェクトは、仮想関数 error_category::name() をオーバーライドして、文字列 "iostream" へのポインタを返す必要があります。これは、std::ios_base::failure 型の例外で提供されるエラーコードを識別するために使用されます。
目次 |
[編集] パラメータ
(なし)
[編集] 戻り値
std::error_category から派生した、未指定の実行時型の静的オブジェクトへの参照。
[編集] 例
このコードを実行
#include <fstream> #include <iostream> 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" << "Error code: " << e.code().value() << " (" << e.code().message() << ")\n" << "Error category: " << e.code().category().name() << '\n'; } }
実行結果の例
Caught an ios_base::failure. Error code: 1 (unspecified iostream_category error) Error category: iostream
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 2087 | C++11 | iostream_category は noexcept として宣言されていませんでした |
noexcept として宣言された |
[編集] 関連項目
| ストリーム例外 ( std::ios_base の public メンバクラス) | |
| (C++11) |
IOストリームのエラーコード (enum) |