推論ガイド(std::optional
std::optional用)
| ヘッダ <optional>
|
||
template< class T >
optional(T) -> optional<T>;
|
(C++17以降) で定義されています | |
std::optional に対してstd::optional 用の推論ガイドが1つ提供されます。これは、暗黙の推論ガイドでは対応できない限界ケース、特にコピー不可能な引数や配列からポインタへの変換を考慮するためのものです。
例
このコードを実行
#include <optional> #include <type_traits> int main() { int a[2]; std::optional oa{a}; // 明示的な推論ガイドを使用 static_assert(std::is_same_v<decltype(oa), std::optional<int*>> == true); }