c++17

std::variant;//作为联合体

using va = std::variant;

va v = 23;

cout << std::get(v);
va v2 = "this is hello";
cout << std::get(v2).data();
std::any a = 2;

//使用std::visit访问,

struct Visitor{

  void oeprator()(int m){

    cout< 
 

  

std::vaiant可以用作返回值,即std::variant

 

std::any是一个包含任何类型的容器

 1 std::any a = 2; 
 2 //cout << endl << a.type() << endl;
 3 cout << endl << a.type().name() << endl;
 4 a = "string";
 5 
 6 //每次重新赋值 都会变成新的类型名称
 7 cout << endl << a.type().name() << endl;
 8 a = Control["Button"].at(0);
 9 cout << endl << a.type().name() << endl;
10 a = nullptr;
11 cout << endl << a.type().name() << endl;
12 if (nullptr == std::any_cast(a))
13 {
14 cout << "nullptr" << endl;
15 }
16 
17  

 

你可能感兴趣的:(c++17)