# std::system_category

< cpp‎ | error

定义于头文件 `<system_error>` |  |
const std::error_category& system_category() noexcept; |  | (C++11 起)

获得到为操作系统报告错误而设的静态错误类别对象的引用。要求对象覆写虚函数 std::error_category::name() 以返回指向字符串 "system" 的指针。亦要求重写虚函数 std::error_category::default_error_condition() 以映射匹配 POSIX errno 值的 error_code 到 std::generic_category 。

### 参数

（无）

### 返回值

到从 std::error_category 派生的未指定运行时类型的静态对象的引用。

### 示例

    #include <iostream>
    #include <system_error>
    #include <iomanip>
    #include <string>

    int main()
    {
        std::error_condition econd = std::system_category().default_error_condition(EDOM);
        std::cout << "Category: " << econd.category().name() << '\n'
                  << "Value: " << econd.value() << '\n'
                  << "Message: " << econd.message() << '\n';

        econd = std::system_category().default_error_condition(10001);
        std::cout << "Category: " << econd.category().name() << '\n'
                  << "Value: " << econd.value() << '\n'
                  << "Message: " << econd.message() << '\n';
    }

可能的输出：

    Category: generic
    Value: 33
    Message: Numerical argument out of domain
    Category: system
    Value: 10001
    Message: Unknown error 10001

### 参阅

generic_category (C++11) | 鉴别通用错误类别 (函数)
errc (C++11) | 列出所有标准 `<cerrno>` 宏常量的 std::error_condition 枚举 (类)