◐ Shell
clean mode source ↗

std::make_optional - cppreference.com

提供: cppreference.com

<tbody> </tbody>

ヘッダ <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 がムーブ可能である必要はありません。

関連項目