命名空间
变体
操作

std::iostream_category

来自 cppreference.com
< cpp‎ | io
定义在头文件 <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 的公共成员类) [编辑]
(C++11)
I/O 流错误代码
(枚举) [编辑]