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

设计类素材网站湛江网上房地产

设计类素材网站,湛江网上房地产,网站 模板 html,wordpress 签到前言 std::visit 是 C17 中引入的一个模板函数#xff0c;它用于对给定的 variant、union 类型或任何其他兼容的类型执行一个访问者操作。这个函数为多种可能类型的值提供了一种统一的访问机制。使用 std::visit#xff0c;你可以编写更通用和灵活的代码#xff0c;而无需关…前言 std::visit 是 C17 中引入的一个模板函数它用于对给定的 variant、union 类型或任何其他兼容的类型执行一个访问者操作。这个函数为多种可能类型的值提供了一种统一的访问机制。使用 std::visit你可以编写更通用和灵活的代码而无需关心具体是哪种类型的值。 实践 市面上大部分例子都是只访问一个variant, 我们写个不同的实际visit支持一下放入多个variant, 参考语法 #include iostream #include variant #include string using namespace std;// Define alternative types using Variant1 std::variantint, double; using Variant2 std::variantint,char;struct MyVisitor {//对每一种组合都必须定义一个处理函数。少一个编译都会失败。void operator()(int value1, int value2) const {std::cout value1value2endl;}void operator()(int value1, char value2) const {std::cout value1value2endl;}void operator()(double value1, int value2) const {std::cout value1value2endl;}void operator()(double value1, char value2) const {std::cout value1value2endl;} };int main() {Variant1 var1;Variant2 var2;var1 42;var2 100;std::visit(MyVisitor{}, var1, var2); var1 3.14;var2 a;std::visit(MyVisitor{}, var1, var2);return 0; }啰嗦一句因为我们四个函数体相似正是用模板的好时机把它们改成一句话 void operator()(auto value1, auto value2) const {std::cout value1value2endl; }如果不放心丢到cppinsights里看看展开 四个函数不论手写还是自动生成缺一不可它们其实是两个variant的alternative types的组合即int/double 与 int/char的所有组合。缺一不可和gcc的实现有关下面会说到。 visit的原理 这次我们不看晦涩的代码而是通过GDB快速理解visit的原理。 调试到21行 std::visit(MyVisitor{}, var1, var2); s进入慢慢到下面这个位置 打印__vtable: 它生成了一个2*2的二维数组里面放了函数指针对应所有组合。 不要被名字所误解vtable不是virtual table的意思。 此时var1 var2里面装的都是int都是各自类型列表中的第一个类型 var1.index(), var2.index(), __func_ptr应该取得了__vtable[0][0]的值即0x40160f 确实如此。 咱们这是从现象推原理如果还想了解vtable怎么生成的可能这篇文章对你有帮助 Variant Visitation – Michael Park Variant Visitation V2 – Michael Park
http://www.ho-use.cn/article/10815746.html

相关文章:

  • 做网站ie缓存做网站每年包多少流量
  • 网站网页设计培训班鞍山seo外包
  • 公司网站制作费计入会计什么科目萧江网站建设
  • 网站标题关键词堆砌企业网站建设admin
  • 排名好的宜昌网站建设wordpress 优化
  • 网站建设销售销售流程图宁波建设协会网站首页
  • 网站关键词是指什么有什么网站可以做问卷调查
  • 网站产品推广新建站点步骤
  • 诸城网站价格镇江市建设工程管理处网站
  • 常用网站域名国家提供的免费网课平台
  • 如何利用国外网站开发客户中国中国建设银行网站
  • 酒店网站建设方案网站诚信建设
  • 单位网站建设流程网站页面两侧漂浮的怎样做
  • 网站建设合同服务范围网站开发前台代码和后台代码
  • 外包网站建设是什么意思wordpress主页打不开
  • 织梦网站修改seo怎么刷关键词排名
  • 吉安哪家做网站的公司好es网站建设
  • 如何给自己网站做反链低代码开发平台 免费
  • 网站发布后打不开wordpress 关闭搜索
  • 网站开发包括几部分wordpress模板文件修改插件
  • 大学生做网站步骤企业网站运营外包费用
  • 网站建设开发有什么好处无锡网站制作楚天软件
  • 站内优化怎么做柳州建设局网站
  • 深圳市住房和建设局网站首页新品发布会一般在哪里举行
  • 吉林省建设标准化网站wordpress文件位置
  • 礼服外贸网站网站建设策划书缺点
  • 博兴县建设局网站建设工程信息查询
  • 家里电脑做网站服务器刚做的网站为什么搜索不到
  • 信息公司网站建设方案 游戏柳市外贸网站建设
  • 网站建设用模板深圳建设工程质量检测中心