【C++基础知识——std::visit函数理解】

1. std::visit函数的定义

std::visit通常用于访问 std::variant 类型的对象。std::variant 是 C++17 引入的一种类型安全的联合体,可以存储多个类型中的一个。visit 函数允许你通过一个访问者(visitor)来访问 std::variant 中存储的值,而不需要显式地检查存储的类型。

2. 示例

#include <variant>
 #include <iostream>

 std::variant<int, std::string> var = 42;

 std::visit([](auto&& arg) {
     std::cout << arg << std::endl;
 }, var);

3. 解释:

  • std::variantstd::variant<int, std::string> var = 42; 定义一个 std::variant 对象 var,它可以存储 int 或 std::string 类型的值。这里初始化为 42。
  • std::visit:std::visit 接受一个访问者(visitor)和一个或多个 std::variant 对象。访问者是一个可调用对象(如 lambda 表达式),它定义了如何处理 std::variant 中存储的值。
  • Lambda 表达式[](auto&& arg) { std::cout << arg << std::endl; },这是一个泛型 lambda 表达式,它接受一个参数 arg,并将其输出到标准输出。auto&& 使得 lambda 表达式可以接受任何类型的参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值