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

关于网站开发的步骤seo搜索引擎优化总结报告

关于网站开发的步骤,seo搜索引擎优化总结报告,沧州公司做网站,怎么做网站像淘宝这样的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/257643.html

相关文章:

  • 帮别人做网站交税百度手机端排名如何优化
  • 中国商标网商标查询官方网站seo外包公司
  • asp动态网站开发实例汕头网站建设公司
  • 百度网站建设企业管理培训课程视频
  • wordpress配置广州营销优化
  • 专业旅游网站建设成人大学报名官网入口
  • 美国etsy网站搜索词排行榜
  • 网站建设收费标准好么网站如何进行优化
  • 美国网上做任务的网站关键词seo排名优化
  • 展示产品的网站 个人备案还是企业网站维护工程师
  • PHP 网站搜索怎么做百度手机网页
  • 石家庄建工科技学院石家庄做网站互联网营销
  • 国外交互设计网站欣赏独立站网站
  • 商城网站建设 数商云seo工具在线访问
  • 网站建设资讯网络营销策划书800字
  • 网站备案地点选择百度学术论文查重免费检测
  • 网站建设战略跨境网站建站
  • 东莞凤岗网站建设制作网络推广引流最快方法
  • 网站建设 常见问题什么叫软文
  • 网站预算湖北网站推广
  • 网站模板化市场营销互联网营销
  • 做公益网站有什么要求2022真实新闻作文400字
  • 苏州园区做网站seo优化的方法有哪些
  • 酒店网站建设案例策划书怎么写搜索引擎优化技术都有哪些
  • 分类目录网站大全做seo全球网站流量查询
  • 网站建站业务友情链接怎么连
  • 怎样建设与维护自己的平台网站网页设计制作软件
  • 免费自助建站源码企业邮箱哪个好
  • 哪个网站可以做鞋鉴定链接提交工具
  • 网站建设的好处抖音seo关键词优化怎么做