<variant>ヘッダでは、候補の型を切り替えながら保持できる記憶域型を定義する。
このヘッダでは、以下の標準ヘッダをインクルードする:
<compare>(C++20)
フリースタンディング
このヘッダのほとんどの機能は、フリースタンディング処理系でも使用できる。ただし、std::get関数は、指定した型・インデックスと異なる値を保持しているときに例外を送出するため、フリースタンディング処理系では削除される。
| 名前 | 説明 | 対応バージョン |
|---|---|---|
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
- P2407R5 Freestanding Library: Partial Classes
- C++26で、このヘッダのクラスが(例外を送出するメンバなど一部を除いて)フリースタンディング処理系に対応した