Qt QJsonObject初始化列表的使用问题

news2024/12/28 6:46:27

在VS2013+Qt5.9.7上,QJsonObject的初始化列表构造函数有BUG

QJsonObject::QJsonObject(std::initializer_list<QPair<QString, QJsonValue> > args)

注:使用初始化列表前先要开启编译选项Q_COMPILER_INITIALIZER_LISTS
以下代码Debug异常

	QJsonObject object = {
		{ "1", 1 },
		{ "2", 3 },
		{ "3", 1.5 },
		{ "4", 0.7 },
		{ "5", false }
	};
	QString js = QJsonDocument(object).toJson();

_BLOCK_TYPE_IS_VALID(pHead-> nBlockUse),内存异常
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在initializer_list vs 2013中双重删除,这个帖子提到了析构的问题

initializer_list行为是错误的.在它的析构函数中,它调用整个范围的向量删除(delete []),然后再次删除数组中的第一个条目.此行为不是initializer_list类的一部分,看起来像编译器错误.initializer_list没有析构函数,也没有分配用于列表的数组.它看起来像C数组的包装器.

在VS2015+Qt5.12.7上同样的代码没有问题,比较了两者的源代码差不多:
VS1023
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\initializer_list、C:\Qt\Qt5.9.7\5.9.7\Src\qtbase\src\corelib\json\qjsonarray.h

VS2015

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\initializer_list、C:\Qt\Qt5.12.7\5.12.7\Src\qtbase\src\corelib\serialization\qjsonarray.h

目前猜测是因为VS2013对C++11初始化列表特性支持不够完整,相关的讨论见
VS 2015 update 1比VS 2013 update 5新增了哪些C++11/14特性、
(N2672)Initializer List proposed wording、
Q_COMPILER_INITIALIZER_LISTS is not set for VisualStudio 2013

结论,Qt+VS2013尽量别使用初始化列表(虽然QVector、QMap的初始化列表是可以正常使用),特别是Json相关的接口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11739.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot整合tkMapper的版本问题

文章主旨&#xff1a;有问题首先看官网 昨天新建了个Spring Boot工程&#xff0c;版本为2.6.13 想要整合 tk.mapper&#xff0c;就去官网查找依赖&#xff0c;如下&#xff1a; <dependency><groupId>tk.mybatis</groupId><artifactId>mapper</a…

基于sklearn实现LDA主题模型(附实战案例)

目录 LDA主题模型 1.LDA主题模型原理 2.LDA主题模型推演过程 3.sklearn实现LDA主题模型&#xff08;实战&#xff09; 3.1数据集介绍 3.2导入数据 3.3分词处理 3.4文本向量化 3.5构建LDA模型 3.6LDA模型可视化 3.7困惑度 LDA主题模型 1.LDA主题模型原理 其实说到LDA…

web前端大一实训 HTML+CSS+JavaScript王者荣耀(60页) web课程设计网页规划与设计 HTML期末大作业 HTML网页设计结课作业

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

【附源码】计算机毕业设计JAVA房产客户信息管理系统

【附源码】计算机毕业设计JAVA房产客户信息管理系统【附源码】 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#x…

新唐(nuvoton)MCU软件开发指南—环境搭建设置

新唐MCU软件开发指南—环境搭建设置 1. 下载并安装Arm Keil MDK https://www.nuvoton.com/tool-and-software/ide-and-compiler/keil-download/ 2. 申请免费版的Keil License&#xff0c;并激活 https://www.nuvoton.com/tool-and-software/ide-and-compiler/get-keil-mdk-…

Tableau安装详解及密钥申请

文章目录Tableau介绍下载软件申请密钥安装软件❤️ 作者简介&#xff1a;大家好我是小鱼干儿♛是一个热爱编程、热爱算法的大三学生&#xff0c;蓝桥杯国赛二等奖获得者&#x1f41f; 个人主页 &#xff1a;https://blog.csdn.net/qq_52007481⭐ 个人社区&#xff1a;【小鱼干爱…

Linux系统了解 Samba服务器配置的工作流程

了解 Samba服务器配置的工作流程 当Samba 服务安装完毕&#xff0c;并不是直接可以使用 Windows 或 Linux的客户端访问Samba服务器&#xff0c;还必须对服务器进行设置&#xff1a;告诉 Samba 服务器将哪些目录共享出来给客户端进行访问&#xff0c;并根据需要设置其他选项&…

微服务架构陷阱与挑战

六大陷阱 粒度太细 服务关系复杂 需求分析、方案设计、测试、部署。。。难度都会增加 例如&#xff1a; 分布式服务如何保证数据一致性分析设计的时候需要考虑的影响点变多 团队效率低下 需求分析、方案设计、测试、部署。。。工作量都会增加 例如&#xff1a; 接口设计…

Xintell——全生命周期的模型建设+智能数据中台

在业务反欺诈、运营及数据分析上&#xff0c;经常会涉及到模型。模型就是基于目标群体的大规模采样数据&#xff0c;挖掘出某个实际问题或客观事物的现象本质及运行规律&#xff0c;利用抽象的概念分析存在问题或风险&#xff0c;计算推演出减轻、防范问题或风险的对策过程&…

怎么用手机压缩图片?教给大家三种手机压缩图片方法

如何使用手机把图片的内存进行压缩呢&#xff1f;大家在使用照片的时候&#xff0c;如果照片的内存太大&#xff0c;不仅会占用手机的内存&#xff0c;也会影响一些网站上传图片的操作&#xff0c;因为图片内存太大很多都是上传不了的&#xff0c;为了解决这一问题我们可以将图…

【设计模式】适配器模式:攻敌三分,自留七分,以超兽武装的例子来谈谈适配器模式

文章目录1 适配器模式1.1 定义1.2 结构1.3 类图1.3.1 类适配器模式1.3.2 对象适配器模式2 例子2.1 类适配器模式2.1.1 代码2.1.2 效果图2.2 对象适配器模式2.2.1 代码2.2.2 效果通3 优缺点及适用环境3.1 优点3.2 缺点3.3 适用环境1 适配器模式 1.1 定义 将一个类的接口转换成客…

【深入理解C++】RTTI、dynamic_cast、typeid()

文章目录1.RTTI2.dynamic_cast运算符3.typeid运算符4.RTTI与虚函数表1.RTTI RTTI(Run Time Type Identification)&#xff0c;即运行时类型识别&#xff0c;通过 RTTI&#xff0c;程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。 RTTI 提供了两…

数据库命名规范

1、mysql 规范 1.1 表名规范 模块_功能点 示例&#xff1a;alllive_log alllive_category。采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线_组成&#xff0c;命名简洁明确&#xff0c;多个单词用下划线_分隔,一个项目一个数据库。全部小写命名&#xff0c…

嵌入式分享合集103

一、EEPROM和Flash 存储器分为两大类&#xff1a;RAM和ROM&#xff0c;本文主要讨论ROM。ROM最初不能编程&#xff0c;出厂什么内容就永远什么内容&#xff0c;不灵活。 后来出现了PROM&#xff0c;可以自己写入一次&#xff0c;要是写错了&#xff0c;只能换一片&#xff0c;自…

React中的生命周期函数

生命周期的三个阶段&#xff1a; 1.创建时&#xff08;挂载阶段&#xff09; ①执行时机&#xff1a;组件创建时&#xff08;页面加载时&#xff09; ②执行顺序&#xff1a;constructor()->render()->componentDidMount&#xff08;&#xff09; import React, { Com…

nodejs+vue+elementui共享充电宝管理系统express

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 2 前端技术&#xff1a;nodejsvueelementui 前端&#xff1a;HTML5,CSS3、JavaScript、VUE 功能介绍 管理员&#xff1a;…

H5基本开发2——(HTML文档基本结构)

现实生活中&#xff0c;任何一个文档都是具有一定的格式&#xff0c;不同的文档&#xff0c;基本格式不同&#xff0c;例如&#xff1a;请假条、调休单、剧本、年中总结、十九大报告、等等&#xff0c;而我们所编写等html文档也是具有一定的编写基本格式的 事实上W3C组织一直致…

[附源码]java毕业设计教学辅助系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

TwoModalBERT进行角色分类

你是否遇到过数据集中有多个文本特性的情况?例如&#xff0c;根据消息的上下文正确地对消息进行分类&#xff0c;即理解前面的消息。比如说我们有下面的数据集&#xff0c;需要对其进行分类。 当只考虑message时&#xff0c;你可以看到它的情绪是积极的&#xff0c;因为“incr…

关于电影的HTML网页设计—— 电影小黄人6页 HTML+CSS+JavaScript

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 精彩专栏推荐&#x1f4…