前言
std::visit
是 C++17 中引入的一个模板函数,它用于对给定的 variant
、union
类型或任何其他兼容的类型执行一个访问者操作。这个函数为多种可能类型的值提供了一种统一的访问机制。使用 std::visit
,你可以编写更通用和灵活的代码,而无需关心具体是哪种类型的值。
实践
市面上大部分例子都是只访问一个variant, 我们写个不同的,实际visit支持一下放入多个variant, 参考语法:
#include <iostream>
#include <variant>
#include <string>
using namespace std;
// Define alternative types
using Variant1 = std::variant<int, double>;
using Variant2 = std::variant<int,char>;
struct MyVisitor {
//对每一种组合都必须定义一个处理函数。少一个编译都会失败。
void operator()(int va