最終更新日時: 2020年11月19日 14時42分25秒 (JST)
Akira Takahashi が更新

履歴 編集

<variant>

# variant(C++17)

`<variant>`ヘッダでは、候補の型を切り替えながら保持できる記憶域型を定義する。

このヘッダでは、以下の標準ヘッダをインクルードする：

- `<compare>` (C++20)

名前 | 説明 | 対応バージョン
--- | --- | ---
`variant` | 候補の型を切り替えながら保持できる記憶域型 (class template) | C++17
`variant_size` | 候補型の数を取得する (class template) | C++17
`variant_alternative` | 候補型のi番目の型を取得する (class template) | C++17
`variant_npos` | 候補型の無効なインデックス値 (variable) | C++17
`holds_alternative` | `variant`オブジェクトが指定の候補型を現在保持しているかを判定する (function template) | C++17
`visit` | `variant`オブジェクトが現在保持している型に対応する関数を呼び出す (function template) | C++17
`monostate` | 空の状態を持つ型 (class) | C++17
`bad_variant_access` | `variant`オブジェクトが現在保持していない候補型に不正アクセスした際に発生する例外型 (class) | C++17

## バージョン

### 言語

- C++17

## 参照

- P0220R1 Adopt Library Fundamentals V1 TS Components for C++17 (R1)
- P2051R0 C++ Standard Library Issues to be moved in Prague