网上有不少std::variant与std::optional的介绍, 基础的部分基本都会讲到, 这里也先简单的过一下std::variant与std::optional的常规用法.
1. std::...:variant中的值
我们可以使用std::get() 或直接std::get()来获取variant中包含的值.
double d = std::get(x);
std::string...s = std::get(y);
当然, 如果std::variant中当前存储的不是对应Type的值, 则会抛出std::bad_variant_access类型的异常:
try
{...;
}
1.4 更安全的获取方法
除了会引发异常的std::get, 也有无异常的 std::get_if() 方法, 当然, 需要自行判断返回的指针类型是否为空:
int* i = std::...).out1 << endl;
3. std::visit() 方式
对于optional来说, 简单的获取值的方法足够用了, 但对于更复杂的std::variant, 上面介绍的访问方式在std: