最終更新日時: 2024年06月11日 22時45分38秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<system_error>

# std::system_category(C++11)

    namespace std {
      const error_category& system_category() noexcept;
    }

## 概要

環境固有のエラーに関する`error_category`を返す。

## 戻り値

`error_category`クラスを継承したクラスオブジェクトへの参照を返す。

この関数を呼び出すことによって返されるオブジェクトは、同じオブジェクトを指す。

この関数によって返されるオブジェクトのクラスは以下の特徴を持つ：

- `name()`関数によって返される文字列は`"system"`
- `equivalent()`仮想関数の挙動は、基底クラスである`error_category`と同じである
- `default_error_condition()`仮想関数は、パラメータ`ev`がPOSIXの`errno`であった場合 `error_condition(ev, generic_category());` を返し、そうでない場合は`error_condition(ev, system_category());` を返す。特定のOSに関する処理は未規定。ただし、POSIXのエラー値に対応していない場合がありえるため、環境によっては`generic_category()`が返される挙動はサポートされない。

## 例外

投げない

## 例

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

    int main()
    {
      const std::error_category& cat = std::system_category();

      std::cout << cat.name() << std::endl;
      std::cout << cat.message(static_cast<int>(std::errc::invalid_argument)) << std::endl;
    }

### 出力

    system
    Invalid argument

## バージョン

### 言語

- C++11

### 処理系

- Clang: ??
- GCC: 4.6.1 ✅
- ICC: ??
- Visual C++: 2010 ✅

## 参照