您的位置 首页 > 德语词汇

variant是什么意思?用法、例句(C++编程:标准库visit和variant用法)

大家好,关于variant是什么意思?用法、例句很多朋友都还不太明白,今天小编就来为大家分享关于C++编程:标准库visit和variant用法的知识,希望对各位有所帮助!

1、类模板std::variant表示一个类型安全的联合体。std::variant的一个实例在任意时刻要么保有其一个可选类型之一的值,要么在错误情况下无值。

2、std::visit应用观览器vis到variant变量组vars。

variant是什么意思?用法、例句(C++编程:标准库visit和variant用法)

3、std::visit参数:

4、接受每个variant的每个可能可选项的可调用(Callable)对象

5、#include<iostream>\n#include<variant>\n\nstructApple{};\nstructOrange{};\nstructBanana{};\nstructPear{};\n\ntemplate<class...Ts>structoverload:Ts...{usingTs::operator()...;};\ntemplate<class...Ts>overload(Ts...)->overload<Ts...>;//C++20不在需要\n\nintmain(){\nstd::variant<Apple,Orange,Banana,Pear>package={Banana()};\n\nautoresult=std::visit(overload{\n[](Apple&){std::cout<<"Apple\\n";return1;},\n[](Orange&){std::cout<<"Orange\\n";return2;},\n[](Banana&){std::cout<<"Banana\\n";return3;},\n[](Pear&){std::cout<<"Pear\\n";return4;}\n},package);\n\nstd::cout<<result<<std::endl;\n}例子2

观察器的是多个variant选项笛卡尔积

6、#include<iostream>\n#include<variant>\n\nstructApple{};\nstructOrange{};\nstructBanana{};\nstructPear{};\n\nstructLight{};\nstructHeavy{};\n\ntemplate<class...Ts>structoverload:Ts...{usingTs::operator()...;};\ntemplate<class...Ts>overload(Ts...)->overload<Ts...>;//C++20不在需要\n\nintmain(){\nstd::variant<Apple,Orange>package1={Orange()};\nstd::variant<Light,Heavy>package2={Light()};\n\nautoresult=std::visit(overload{\n[](Apple&,Light&){std::cout<<"LightApple\\n";return1;},\n[](Orange&,Light&){std::cout<<"LightOrange\\n";return2;},\n[](Apple&,Heavy&){std::cout<<"HeavyApple\\n";return3;},\n[](Orange&,Heavy&){std::cout<<"HeavyOrange\\n";return4;}\n},package1,package2);\n\nstd::cout<<result<<std::endl;\n}

在线编译测试

关于variant是什么意思?用法、例句,C++编程:标准库visit和variant用法的介绍到此结束,希望对大家有所帮助。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023