- optional[meta header]
- cpp17[meta cpp]
<optional>ヘッダでは、任意で値を持たせられるオブジェクトの型を定義する。
このヘッダでは、以下の標準ヘッダをインクルードする:
<compare>(C++20)
このヘッダのほとんどの機能は、フリースタンディング処理系でも使用できる。ただし、optional::value()メンバ関数は、値を保持していないときに例外を送出するため、フリースタンディング処理系では削除される。
| 名前 | 説明 | 対応バージョン |
|---|---|---|
optional |
任意で値を持たせられるオブジェクト (class template) | C++17 |
make_optional |
optionalオブジェクトを生成するヘルパ関数 (function template) |
C++17 |
nullopt_t |
統一的な無効値を表す値の型 (class) | C++17 |
nullopt |
統一的な無効値を表す値 (constant value) | C++17 |
bad_optional_access |
無効な値にアクセスした場合に発生する例外 (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で、このヘッダのクラスが(例外を送出するメンバなど一部を除いて)フリースタンディング処理系に対応した