std::variant与std::optional是c++17加入的新容器,variant主要是为了提供更安全的union, 而optional除了存取T类型本身外, 还提供了一个额外的表达optional...其实像std::variant 与std::optional是函数式语言中比较早就存在的两种基础类型, 比如在Haskell中, optional对应的是maybe monad, 而variant对应的是...网上有不少std::variant与std::optional的介绍, 基础的部分基本都会讲到, 这里也先简单的过一下std::variant与std::optional的常规用法.
1. std::...variant 基础用法
我们以如下声明为例:
std::variant x, y;
如上简单声明类型为std::variant的x, y...变量, 常规操作如下:
1.1 赋值操作
x = 1;
y = "1.0";
x = 2.0; // overwrite value
1.2 获取当前使用的type 在variant声明中的索引
std