ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 网络编程 >> C/C++教程 >> variant原理和应用

variant原理和应用(1/5)

来源:网络整理     时间:2018-03-29     关键词:

本篇文章主要介绍了" variant原理和应用",主要涉及到方面的内容,对于C/C++教程感兴趣的同学可以参考一下: variant原理和应用variant语义variant是一个泛化的、类型安全的union。可以保存类型不同的对象,它的特点是多类型单值。基本用法以c++17中...

variant原理和应用

variant语义

variant是一个泛化的、类型安全的union。可以保存类型不同的对象,它的特点是多类型单值。

基本用法

以c++17中的variant为例(boost中的variant和标准库的用法几乎一样),我们定义一个这种的variant:

std::variant<int, double, char> v;

这个variant可以用来存储int, double和char三种类型的数据,所以我们可以这样赋值:

1

2

3

4

    std::variant<int,double,char>v;

    v=int(1);

    v=double(1.5);

    v=char(0);

可以看到类型的值可以赋给同一个variant,如果将一个非int, double和char的类型赋值给v的话则在会出现一个编译期错误,所以variant是类型安全的,variant只允许将定义时指定的那些类型赋值给它。注意,重新赋值的时候之前的对象会自动析构掉。

接下来看如何取值:

1

2

3

4

5

6

7

8

    usingVT=std::variant<int,double,char>;

    

    VTt=1;

相关图片

相关文章