名前空間
変種
操作

std::make_optional

提供: cppreference.com
< cpp‎ | utility‎ | optional
 
 
 
 
ヘッダ <optional> で定義
template< class T >
constexpr std::optional<std::decay_t<T>> make_optional( T&& value );
(1) (C++17以上)
template< class T, class... Args >
constexpr std::optional<T> make_optional( Args&&... args );
(2) (C++17以上)
template< class T, class U, class... Args >
constexpr std::optional<T> make_optional( std::initializer_list<U> il, Args&&... args );
(3) (C++17以上)
1) value から optional オブジェクトを作成します。 実質的に std::optional<std::decay_t<T>>(std::forward<T>(value)) を呼びます。
2) args... から optional オブジェクトをその場で作成します。 return std::optional<T>(std::in_place, std::forward<Args>(args)...); と同等です。
3) il および args... から optional オブジェクトをその場で作成します。 return std::optional<T>(std::in_place, il, std::forward<Args>(args)...); と同等です。

目次

[編集] 引数

value - optional オブジェクトを構築するための値
il, args - T のコンストラクタに渡される引数

[編集] 戻り値

構築された optional オブジェクト。

[編集] 例外

T のコンストラクタによって投げられるあらゆる例外を投げます。

[編集] ノート

コピー省略が保証されるため、オーバーロード (2-3) のために T がムーブ可能である必要はありません。

[編集] 関連項目

optional オブジェクトを構築します
(パブリックメンバ関数) [edit]