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}; // uses explicit deduction guide static_assert(std::is_same_v<decltype(oa), std::optional<int*>> == true); }