当前位置: 首页 > wzjs >正文

wordpress网站监测电商网站建设费用预算

wordpress网站监测,电商网站建设费用预算,网站开发师是做什么的,代做效果图的网站好std::visit std::visit 使得variant可以使用类似函数重载的条用模式: std::visit 是 C17 引入的一个非常强大的工具,用于处理 std::variant(变体类型)中的数据。它允许你对 std::variant 中存储的不同类型的数据执行不同的操作&a…

std::visit

std::visit 使得variant可以使用类似函数重载的条用模式:
std::visit 是 C++17 引入的一个非常强大的工具,用于处理 std::variant(变体类型)中的数据。它允许你对 std::variant 中存储的不同类型的数据执行不同的操作,而无需手动检查类型。以下是 std::visit 的几种常见用法:

1. 使用对象函数方式访问

你可以定义一个访问者类,为每种可能的类型提供一个 operator() 函数。然后,使用 std::visit 调用相应的函数。

示例代码:
#include <iostream>
#include <variant>
#include <string>struct MyVisitor {void operator()(double d) const {std::cout << d << '\n';}void operator()(int i) const {std::cout << i << '\n';}void operator()(const std::string& s) const {std::cout << s << '\n';}
};int main() {std::variant<int, double, std::string> var1(42), var2(3.14), var3("visit");std::visit(MyVisitor(), var1);std::visit(MyVisitor(), var2);std::visit(MyVisitor(), var3);return 0;
}

2. 使用泛型 Lambda 表达式访问

std::visit 也可以与泛型 Lambda 表达式一起使用,这使得代码更加简洁。

示例代码:
#include <iostream>
#include <variant>
#include <string>auto printvariant = [](const auto& val) {std::cout << val << std::endl;
};int main() {std::variant<int, double, std::string> var1(42), var2(3.14), var3("visit");std::visit(printvariant, var1);std::visit(printvariant, var2);std::visit(printvariant, var3);return 0;
}

3. 使用重载的 Lambda 表达式访问

你可以定义一组 Lambda 表达式,并使用 std::visit 来选择最适合当前类型的 Lambda。

示例代码:
#include <iostream>
#include <variant>
#include <string>template<typename... Ts>
struct overload : Ts... {using Ts::operator()...;
};template<typename... Ts>
overload(Ts...) -> overload<Ts...>;int main() {std::variant<int, std::string> var(42);std::visit(overload{[](int i) { std::cout << "int: " << i << '\n'; },[](const std::string& s) { std::cout << "string: " << s << '\n'; },}, var);return 0;
}

4. 多个 std::variant 的访问

std::visit 还可以同时处理多个 std::variant,这在处理多个可能的类型组合时非常有用。

示例代码:
#include <iostream>
#include <variant>
#include <string>struct LightItem {};
struct HeavyItem {};int main() {std::variant<LightItem, HeavyItem> basicPackA;std::variant<LightItem, HeavyItem> basicPackB;std::visit(overload{[](LightItem&, LightItem&) { std::cout << "2 light items\n"; },[](LightItem&, HeavyItem&) { std::cout << "light & heavy items\n"; },[](HeavyItem&, LightItem&) { std::cout << "heavy & light items\n"; },[](HeavyItem&, HeavyItem&) { std::cout << "2 heavy items\n"; },}, basicPackA, basicPackB);return 0;
}
http://www.dtcms.com/wzjs/571380.html

相关文章:

  • 做网站技术含量网络综合布线设计图
  • 给新公司做网站要多少钱项目运营方案计划书
  • 做校招的网站有哪些网络营销推广的渠道有哪些
  • 自己做网站还是公众号网页特效代码
  • 南通网站制作价格商盈网站建设
  • html5 企业国际网站 多国家 多语言 源代码 cookies网站子网页设计
  • 网站图片要求企业网站推广外包
  • 鲜花网网站开发的目标免费网站推广软件下载
  • 茶叶网站模板下载邮箱网站怎么做
  • 天津做网站找哪家公司好wordpress插件 占用内存
  • 网站定制报价网站推广 优帮云
  • 网站建设小组怎样编写网站
  • 电子商务网站怎么做推广网站头部怎么做
  • 电子工程网站深圳做棋牌网站建设哪家服务好
  • 高质量免费的网站网站的基本结构
  • 专业医疗网站建设课程网站开发卷宗
  • 全景网站怎么做网站自助制作
  • 东莞网站建设定制黄冈免费网站建设平台
  • 专业网站定制报价免费十八种禁用网站游戏
  • 微信上登录网站同步怎么做wordpress传上去
  • 婚纱网站页面设计图片wordpress媒体库数据
  • 多语言网站模板杭州协会网站建设
  • 做外汇的网站wordpress主题 dux
  • 东莞哪些网络公司做网站比较好网站生成小程序
  • 各大网站查重率比较网站制作公司都找乐云seo
  • 企业网站开发课程培训公司测名网
  • 试卷网站在线做哪家网站推广做的好
  • 创意礼品做的比较好的网站上海公司注册地址
  • 权威网站wordpress自动
  • 安徽建设厅网站首页宁波微网站开发