C及C++标准与QT版本介绍

一.软件规范及组织

1.GNU

GNU是“GNU's Not Unix”的缩写,是GNU计划(GNU Project)的官方名称,由理查德·斯托曼在1983年9月27日公开发起。

GNU计划的目的是创建一套完全自由的操作系统。为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都受到GNU通用公共许可证(GNU General Public License,简称GPL)的保护。

2.GPL

GPL全称是GNU General Public License,中文名为GNU通用公共许可证。

它并非由自由软件基金会(FSF)所发表,亦非GNU计划的一部分,不过我们常将它视为GNU计划下的主要许可证。GPL允许任何人在遵守其原则的前提下自由获取、修改、发布和使用该许可软件及软件的衍生作品。

3.POXIS(Portable Operating System Interface)

POXIS是一种操作系统接口标准,全称为“可移植操作系统接口”。

它最初由IEEE组织制定,目的是为了使不同的操作系统之间可以互相兼容。POSIX标准定义了一系列API(应用程序接口)和命令行工具,这些API和工具规定了操作系统应该提供哪些功能,并规定了这些功能的调用方式和行为。

POSIX标准包含多个部分,主要涵盖了文件管理、进程控制、用户权限、系统调用等方面。

跨平台特性:为了保证操作系统 API 的相互兼容性制定了 POSIX 标准。目前符合 POSIX 标准协议的操作系统有:UNIX、BSD、Linux、iOS、Android、SylixOS、VxWorks、RTEMS 等。

Windows操作系统支持POSIX。虽然Windows操作系统并不完全符合POSIX标准,但可以通过一些工具和库来实现POSIX兼容性。这些工具包括Cygwin、MinGW或MSYS等,它们提供了一些POSIX函数和命令,

使得在Windows上开发和运行POSIX兼容的应用程序成为可能。

https://pubs.opengroup.org/onlinepubs/9699919799/

4.System V

System V是由AT&T开发的Unix操作系统的一个版本,在1983年首次发布。它是Unix操作系统众多版本中的一支,有时也被简称为“SysV”。

System V也是操作系统进程间通信的标准,它提供了三种指定的进程间通信方式:System V消息队列、System V共享内存以及System V信号量。

二.C语言与C++标准

1.C语言标准:

C89/ANSI C (1989): 这是第一个由ANSI(美国国家标准协会)制定的C语言标准,也被称为C90。它定义了C语言的基本语法和语义,为后续的C语言版本奠定了基础。

C95 (ISO/IEC 9899:1995): 这是对ISO C90标准的一次修订,增加了一些新特性,例如支持多字节字符等。

C99 (ISO/IEC 9899:1999): 由ISO/IEC在1999年采纳的新版C语言标准。它新增了许多特性,如内联函数、变长数组、严格类型别名、具名结构初始化等。这个版本在很多现代编译器和系统中都得到了广泛的支持。

C11 (ISO/IEC 9899:2011): 是C语言的另一个重要版本,由ISO在2011年制定。它增加了一些新的语法和库函数,同时修复了C99中的一些缺陷。

C17 (ISO/IEC 9899:2018): 于2018年发布,是当前最新的C语言标准。这个版本主要修复了C11标准中的一些问题,并没有引入新的语言特性。

2.C++标准:

C++98 (ISO/IEC 14882:1998): 这是C++的第一个国际标准版本,于1998年发布。它奠定了C++语言的基础,包含了面向对象编程、模板等核心特性。

C++03 (ISO/IEC 14882:2003): 这个版本是在C++98之后的修订版本,于2003年发布。与C++98相比,C++03的变化相对较小,主要是一些小的改进和缺陷修复。

C++11 (ISO/IEC 14882:2011): C++11是C++语言的一次重大更新,于2011年发布。它引入了许多新特性,如自动类型推导(auto关键字)、范围基于的for循环、lambda表达式、智能指针、右值引用和移动语义等。C++11的推出极大地提高了C++的编程效率和代码的可读性。

C++14 (ISO/IEC 14882:2014): C++14是在C++11之后的另一个重要版本,于2014年发布。它主要提供了一些C++11的改进和扩展,以及一些新的库函数和特性。

C++17 (ISO/IEC 14882:2017): C++17是C++语言的又一次重大更新,于2017年发布。它引入了许多新特性,如结构化绑定、if constexpr、std::optional、std::variant等,进一步增强了C++语言的表达能力和编程效率。

C++20 (ISO/IEC 14882:2020): C++20是最新的C++标准,于2020年发布。它带来了许多新的语法和库特性,如三向比较运算符、concepts(概念)、协程、ranges库等。C++20进一步推动了C++语言的现代化和易用性。

三.QT版本与选择:

1.稳定版本

Qt4: 4.8.7 4.X 系列终结版本

Qt5 : 5.6 LTS 长期支持版本

Qt5: 5.9 LTS 长期支持版本

Qt5: 5.12 LTS 长期支持版本

Qt5: 5.15 LTS 长期支持版本

2.Qt版本选择

Qt4.8.7是Qt4的终结版本,是Qt4系列版本中最稳定最经典的(嵌入式推荐用Qt4.8,打包的程序小)

Qt5.6.3最最后支持xp系统的长期支持版本,Qt5.7.0是最后支持xp系统的非长期支持版本。

Qt5.12.3是最后提供mysql数据库插件的版本。

Qt5.15系列是最后支持win7的版本。

Qt5.15.2是最后样式表性能最高的版本。是2020.11.13日发布,也是QT5的最后一个版本

Qt Quick 3D模块是从Qt5.14开始提供预览版,Qt5.15正式加入。

综合以上,QT5优先使用Qt5.15.2版本。

3.QT6版本:

6.2.0  目前可以在线安装的最低版本的QT6,也是长期支持版本,2021-9-26发布

6.7.0  当前最新版本,也是长期支持版本  2024-3-25日发布

建议:如果是新项目且无特殊要求,建议用最新版本的QT6,毕竟这是趋势,而且很多模块接口QT5和QT6是有很大区别的,将来迁移会比较困难

注意:Qt6不支持Windows 7

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

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

相关文章

AAAI-24 | EarnHFT:针对高频交易的分层强化学习(RL)框架

AAAI-24 | EarnHFT:针对高频交易的分层强化学习(RL)框架 原创 QuantML QuantML 2024-04-15 09:25 上海 EarnHFT 摘要(Abstract):高频交易(HFT)使用计算机算法在短时间内(例如秒级)做出交易决策&#xff…

C++实战——日期类的实现

日期类的实现 前言一、日期类概念实现运用场景 二、日期类的具体实现代码构造函数拷贝构造函数获取日期(内联函数)赋值加等减等加减小于小于等于大于大于等于相等不相等前置后置前置- -后置- -关于类里重载的比较运算符为什么要加外部const示例 Date.hDa…

【人工智能】机器学习算法综述及常见算法详解

目录 推荐 1、机器学习算法简介 1.1 机器学习算法包含的两个步骤 1.2 机器学习算法的分类 2、线性回归算法 2.1 线性回归的假设是什么? 2.2 如何确定线性回归模型的拟合优度? 2.3 如何处理线性回归中的异常值? 3、逻辑回归算法 3.1 …

现代数据中心中智能网卡/DPU的演进

数据中心是一个大型的连接服务器和存储系统池,通常由组织用于远程存储、处理或分发大量数据。组织可以拥有和管理其数据中心,也可以租用由第三方(亚马逊或谷歌云等云服务提供商)管理的基础设施,并通过互联网访问资源。…

LeetCode 454.四数相加II(模拟,map.getOrDefault()的使用)

给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2], n…

IS62LV256AL-45ULI功能参数介绍及如何优化电源稳定性以适应

IS62LV256AL-45ULI功能参数介绍-公司新闻-配芯易-深圳市亚泰盈科电子有限公司 制造商:ISSI 产品品种:静态随机存取存储器 RoHS:是 存储容量:256 kbit 组织:32 k x 8 拜访时刻:45 ns 接口类型:Parallel 电源电压-最大:3.63 V 电源电压-最小:2.97 V 电源电流—最大值:5…

centos8.5 安装nginx

磁盘划分 600GB 4c 16GB内存 /boot 分区:200MB 这个分区用于存放启动文件和内核。200MB通常足够。/(根)分区:50GB 根分区包含操作系统、核心应用程序、配置文件和Nginx服务本身。50GB的空间应该足够存放这些文件和必要的库。/var 分区:100GB Nginx在运行时会产生日志文件,…

前端学习<四>JavaScript基础——38-offset相关属性和匀速动画(含轮播图的实现)

前言 JS动画的主要内容如下&#xff1a; 1、三大家族和一个事件对象&#xff1a; 三大家族&#xff1a;offset/scroll/client。也叫三大系列。 事件对象/event&#xff08;事件被触动时&#xff0c;鼠标和键盘的状态&#xff09;&#xff08;通过属性控制&#xff09;。 2…

java算法day59 | 单调栈part02 ● 503.下一个更大元素II ● 42. 接雨水

503.下一个更大元素II 思路&#xff1a; 相比于单纯寻找下一个最大元素&#xff0c;要遍历两边数组&#xff0c;注意i%nums.length。 class Solution {public int[] nextGreaterElements(int[] nums) {int[] resnew int[nums.length];for(int i0;i<res.length;i){res[i]-1;…

【大数据】bigtable,分布式数据库的鼻祖

目录 1.概述 2.数据模型 3.API 4.架构 5.一个完整的读写过程 6.如何查找到要的tablet 7.LSM树 1.概述 本文是作者阅读完bigtable论文后对bigtable进行的一个梳理&#xff0c;只涉及核心概念不涉及具体实操&#xff0c;具体实操会在后续的文章中推出。 GFS的出现虽然解…

Unity实现关闭应用程序和关闭应用窗口

using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Runtime.InteropServices; using System;public class WindowsClose : MonoBehaviour {// 声明需要使用的Windows API函数[DllImport("user32.dll", SetLastError tr…

指针专题(2)

前言 上一节我们学习了指针的相关内容&#xff0c;本节我们继续学习指针专题&#xff0c;更加深入的了解指针&#xff0c;那么废话不多说&#xff0c;我们正式进入今天的学习 1.对数组名的深入理解 在上一节的内容中&#xff0c;我们提到了用指针来访问数组的操作&#xff0c…

Linux 基于 TCP 协议的简单服务器-客户端应用

目录 一、相关函数 1、listen() 2、accept() 3、connect() 4、两种IP地址转换方式 5、TCP和UDP数据发送和接收函数对比 5、log.hpp自定义记录日志 二、udp_server.hpp单进程版本 三、tcp_server.cc 四、Telnet客户端&#xff08;代替tcp_client.cc&#xff09; 五…

ColBERT和ColBERTv2:兼具Bi-encoder和cross-encoder优势的多向量排序模型

文章目录 简介ColBERTColBert 原理ColBERT如何训练ColBERT 如何使用离线索引用ColBERT 实现top-k Re-ranking用ColBERT 实现top-k 端到端的检索 ColBERTv2ColBERTv2原理SupervisionRepresentation IndexingRetrieval 总结参考资料 简介 ColBERT是一种多向量排序模型&#xff0…

数据分析案例-中国黄金股票市场的EDA与价格预测

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

数据库查询如何查询父级id下无限子级的元素列表

这里写目录标题 一、pgsql二、mysql 一、pgsql WITH RECURSIVE sub_categories AS (SELECT id, parent_id, nameFROM categoriesWHERE parent_id 父级ID -- 替换为你要查询的父级IDUNION ALLSELECT c.id, c.parent_id, c.nameFROM categories cINNER JOIN sub_categories sc…

Redis的Stream 和 实现队列的方式【List、SortedSet、发布订阅、Stream、Java】

Redis队列与Stream、Redis 6多线程详解 Redis队列与StreamStream总述常用操作命令生产端消费端单消费者消费组消息消费 Redis队列几种实现的总结基于List的 LPUSHBRPOP 的实现基于Sorted-Set的实现PUB/SUB&#xff0c;订阅/发布模式基于Stream类型的实现与Java的集成 消息队列问…

算法打卡day39

今日任务&#xff1a; 1&#xff09;卡码网57. 爬楼梯&#xff08;70. 爬楼梯进阶版&#xff09; 2&#xff09;322.零钱兑换 3&#xff09;279.完全平方数 4&#xff09;复习day14 卡码网57. 爬楼梯&#xff08;70. 爬楼梯进阶版&#xff09; 题目链接&#xff1a;57. 爬楼梯…

ipv4Bypass:一款基于IPv6实现的IPv4安全绕过与渗透测试工具

关于ipv4Bypass ipv4Bypass是一款基于IPv6实现的安全绕过与渗透测试工具&#xff0c;该工具专为红队研究人员设计&#xff0c;可以帮助广大研究人员通过IPv6绕过目标安全策略&#xff0c;以此来检测安全检测机制的健壮性。 20世纪90年代是互联网爆炸性发展时期&#xff0c;随着…

Llama 3王者归来,可与GPT-4分庭抗礼,开源模型即将追上闭源模型了?

“有史以来最强大的开源大模型”Llama 3引爆AI圈&#xff0c;马斯克点赞&#xff0c;英伟达高级科学家Jim Fan直言&#xff0c;Llama 3将成为AI大模型发展历程的“分水岭”&#xff0c;AI顶尖专家吴恩达称Llama3是他收到的最好的礼物。 4月18日&#xff0c;AI圈再迎重磅消息&a…