名前空間
変種
操作

std::make_optional

提供: cppreference.com
< cpp‎ | utility‎ | optional
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ (C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
 
ヘッダ <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]