optional和variant都是和类型(sum type, 表达的是值的个数是所有type的总和), 区别于struct所表达的积类型....variant 基础用法
我们以如下声明为例:
std::variantdouble, std::string> x, y;
如上简单声明类型为std::variant的x, y...;
}
1.4 更安全的获取方法
除了会引发异常的std::get, 也有无异常的 std::get_if() 方法, 当然, 需要自行判断返回的指针类型是否为空:
int* i = std::...它还有一个特殊的类型 std::nullopt_t, 这个类型与std::nullptr_t一样, 只有一个值, std::nullopt, optional在没有设置值的情况下类型就是std::nulopt_t...如果optional为std::nullopt, 则直接返回传入的默认值.