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

C++模板知识点3『std::initializer_list初始化时逗号表达式的执行顺序』

std::initializer_list初始化时逗号表达式的执行顺序
在使用Qt Creator4.12.2,Qt5.12.9 MinGW开发的过程中发现了一个奇怪的现象,std::initializer_list<int>在初始化构造时的执行顺序反了,经过一番测试发现,其执行顺序可正可反,当然仅限于此开发环境下。

template<typename... Params>
void print(Params... ps) {std::initializer_list<int>{(qDebug() << ps, 1)...};qDebug() << "---------------------";std::initializer_list<int> value{(qDebug() << ps, 1)...};
}调用处的函数为: print(1, 'c', 2.3);
调试输出顺序为:先是2.3 c 1,后是1 c 2.3

这输出结果令人脑子发懵啊,打开VS2017新建控制台程序,复制代码,调试运行,发现输出顺序始终为:1 c 2.3,符合之前认知。

测试图片合并如下:
在这里插入图片描述
不知道为什么Qt中打印顺序不一致,欢迎知道的大佬指点一下。

http://www.dtcms.com/a/314542.html

相关文章:

  • 2025-08月特辑---私有化部署gitea仓库
  • Android UI 组件系列(九):ListView 性能优化与 ViewHolder 模式实战
  • 信息安全概述
  • LightRAG:大模型时代的低成本检索利器
  • HCIP笔记1
  • OpenCV计算机视觉实战(18)——视频处理详解
  • 经典设计模式
  • 电商系统想撑住大流量?ZKmall开源商城靠微服务 + Spring Boot3 解决单体架构难题
  • VS2019 Qt5.14.2 OpenCV4.4.0 全流程安装及开发环境搭建与配置(工业相机环境配置)
  • SpringMVC在前后端分离架构中的执行流程详解
  • 【C++指南】STL stack 完全解读(一):从入门到掌握基础操作
  • 【C#】操作Execl和Word文件-2
  • 深入理解基础 IO:从 C 库函数到系统调用的全景指南
  • MCP安全机制深度剖析:权限控制与数据保护最佳实践
  • 液体泄漏识别误报率↓75%:陌讯多模态融合算法实战解析
  • vllm启动Qwen/Qwen3-Coder-30B-A3B-Instruct并支持工具调用
  • vue3 elementPlus el-dialog添加拖拽
  • Python实现Word转PDF全攻略:从入门到实战
  • 【人工智能99问】什么是Post-Training,包含哪些内容?(19/99)
  • 机器学习(12):拉索回归Lasso
  • 墨者学院SQL过滤字符后手工绕过漏洞测试(万能口令)
  • 【2025/08/04】GitHub 今日热门项目
  • vue3+vue-flow制作简单可拖拽可增删改流程图
  • 基于Matlab图像处理的液晶显示器表面缺陷检测与分类研究
  • 使用 SecureCRT 连接华为 eNSP 模拟器的方法
  • 【测试】⽤例篇
  • Android Telephony 框架与横向支撑层
  • SpringBoot+SpringMVC常用注解
  • 多线程(线程的创建与常见方法的使用)
  • sqli-labs靶场less29~less35