本篇文章主要介绍了" variant原理和应用",主要涉及到方面的内容,对于C/C++jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
variant原理和应用variant语义variant是一个泛化的、类型安全的union。可以保存类型不同的对象,它的特点是多类型单值。基本用法以c++17中...
variant原理和应用
variant语义
variant是一个泛化的、类型安全的union。可以保存类型不同的对象,它的特点是多类型单值。
基本用法
以c++17中的variant为例(boost中的variant和标准库的用法几乎一样),我们定义一个这种的variant:
std::variant v;
这个variant可以用来存储int, double和char三种类型的数据,所以我们可以这样赋值:
1 234 | std::variant<int,double,char>v; v=int(1); v=double(1.5); v=char(0); |
可以看到类型的值可以赋给同一个variant,如果将一个非int, double和char的类型赋值给v的话则在会出现一个编译期错误,所以variant是类型安全的,variant只允许将定义时指定的那些类型赋值给它。注意,重新赋值的时候之前的对象会自动析构掉。
接下来看如何取值:
1 2345678 | usingVT=std::variant<int,double,char>; VTt=1;
|