std::experimental::nullopt_t

在标头 <experimental/optional> 定义
struct nullopt_t;
(库基础 TS)

std::experimental::nullopt_t 是一种空类类型,用于指定具有未初始化状态的 optional 类型。特别是,std::experimental::optional 有一个以 nullopt_t 为单个实参的构造函数,它创建不含有值的 optional 对象。

std::experimental::nullopt_t 必须为字面类型 (LiteralType) ,且不能具有默认构造函数。

它必须具有一个接受某种由实现定义的字面量类型的 constexpr 构造函数。

注解

为同时支持 op = {};op = nullopt; 作为 optional 对象的脱离语法,nullopt_t 并非可默认构造 (DefaultConstructible)

此类可能的实现为

struct nullopt_t
{
    constexpr nullopt_t(int) {}
};

参阅

Template:cpp/utility/dsc nullopt