std::optional 的推导指引
来自cppreference.com
| 在标头 <optional> 定义
|
||
template< class T > optional(T) -> optional<T>; |
(C++17 起) | |
为 std::optional 提供一个推导指引以处理隐式推导指引所遗漏的边界情况,尤其是不可复制实参和数组到指针转换。
示例
运行此代码
#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);
}