C++ 有哪些标准版本
目录
- 1.主要分为以下几个版本
- C++98(ISO/IEC 14882:1998) 第一个国际标准
- C++03(ISO/IEC 14882:2003)小幅度修订
- C++11(ISO/IEC 14882:2011)一次重大更新
- C++14(ISO/IEC 14882:2014)增量改进
- C++17(ISO/IEC 14882:2017)更多实用特性
- C++20(ISO/IEC 14882:2020)一次重大更新
- C++23(ISO/IEC 14882:2023)补充和完善
- C++26(计划中)
1.主要分为以下几个版本
C++ 的标准由国际标准化组织(ISO)制定,主要分为以下几个版本,每个版本都引入了新的特性和改进,推动了语言的发展:
C++98(ISO/IEC 14882:1998) 第一个国际标准
特点:C++ 的第一个国际标准,奠定了现代 C++ 的基础。
主要特性:引入了标准模板库(STL)、模板、异常处理、命名空间、类型转换、多态性等。
C++03(ISO/IEC 14882:2003)小幅度修订
特点:对 C++98 的小幅度修订,主要修复了一些漏洞和不一致性问题,未引入新的语言特性。
C++11(ISO/IEC 14882:2011)一次重大更新
特点:C++ 的一次重大更新,引入了大量新特性,显著提升了语言的现代化程度和功能。
主要特性:
自动类型推导(auto):简化变量声明。
Lambda 表达式:支持内联函数对象。
智能指针(std::shared_ptr, std::unique_ptr):改进内存管理。
移动语义和右值引用:优化性能,减少不必要的拷贝。
并发支持(线程库):支持多线程编程。
nullptr:替代 NULL,提高类型安全性。
范围 for 循环:简化容器遍历。
C++14(ISO/IEC 14882:2014)增量改进
特点:对 C++11 的增量改进,进一步优化语言特性。
主要特性:
泛型 Lambda 表达式:Lambda 参数可使用 auto 类型。
返回类型推导:函数返回类型可使用 auto。
二进制字面量:支持二进制直接表示(如 0b1010)。
改进的初始化捕获:Lambda 捕获列表支持更灵活的初始化。
C++17(ISO/IEC 14882:2017)更多实用特性
特点:引入了更多实用特性,进一步简化代码并提升性能。
主要特性:
结构化绑定:简化元组或结构体的解包。
if 和 switch 语句初始化:支持条件语句内直接初始化变量。
折叠表达式:简化可变参数模板的展开。
并行算法:STL 算法支持并行执行。
文件系统库:提供跨平台的文件系统操作。
std::variant 和 std::optional:增强类型安全性和可选值处理。
C++20(ISO/IEC 14882:2020)一次重大更新
特点:C++ 的又一次重大更新,引入了许多革命性特性。
主要特性:
概念(Concepts):用于模板参数的类型约束,提升代码可读性和编译错误信息。
范围(Ranges):提供更简洁的容器操作方式。
协程(Coroutines):支持轻量级并发和异步编程。
三向比较运算符(<=>):简化比较操作符的重载。
模块(Modules):改进头文件机制,减少编译时间。
consteval 和 constinit:增强编译时计算的能力。
C++23(ISO/IEC 14882:2023)补充和完善
特点:对 C++20 的补充和完善,进一步优化语言特性。
主要特性:
栈上的 std::stacktrace:更高效的堆栈跟踪。
执行策略的扩展:增强并行算法的灵活性。
std::expected:改进错误处理机制。
std::move_only_function:支持仅移动语义的可调用对象。
C++26(计划中)
特点:正在开发中的下一个标准版本,预计将引入更多新特性,如反射、网络库等。
总结
C++ 的标准版本不断演进,每个版本都致力于提升语言的表达能力、性能和安全性。从 C++98 的基础构建,到 C++11 的现代化革新,再到 C++20 的革命性特性(如概念、协程和模块),C++ 始终在适应软件开发的需求。开发者可以根据项目需求选择合适的 C++ 标准版本,以充分利用语言的新特性。
相关文章:
C++ 有哪些标准版本
目录 1.主要分为以下几个版本C98(ISO/IEC 14882:1998) 第一个国际标准C03(ISO/IEC 14882:2003)小幅度修订C11(ISO/IEC 14882:2011)一次重大更新C14(ISO/IEC 14882:2014)增量改进C17&…...
二、MySQL操作命令汇总
文章目录 二、MySQL操作命令汇总1.数据库操作2.表的增删改查2.1 查表2.2 建表给表添加注释假如表已经存在 2.3 删表2.4 查看表结构2.5 改表 3.简单查询3.1 查询单个字段3.2 查询多个字段3.3 查询所有字段3.4 查询结果去重3.5 查询结果排序3.6 查询结果限制条数3.7 查询分组结果…...
编程日志4.28
队列的链表表示代码 #include<iostream> #include<stdexcept> using namespace std; //队列 类的声明 template<typename T>//1.模板声明,表明Queue类是一个通用的模板类,可以用于存储任何类型的元素T class Queue {//2.Queue类的声…...
Qt 中信号与槽(signal-slot)机制支持 多种连接方式(ConnectionType)
Qt 中信号与槽(signal-slot)机制支持 多种连接方式(ConnectionType) Qt 中信号与槽(signal-slot)机制支持 多种连接方式(ConnectionType),用于控制信号发出后如何调用槽…...
Python案例实战《手势识别》
目录 1、效果图2、手势识别关键步骤(1) 导入必要的库(2)配置 MediaPipe(3)启动摄像头(4)设置手指张开判断的距离阈值(5)计算手指之间的欧几里得距离ÿ…...
NGINX `ngx_http_charset_module` 字符集声明与编码转换
一、模块定位与功能 ngx_http_charset_module 主要提供两大能力: 响应头声明:在 Content-Type 头部自动添加 ; charsetXXX,告知客户端所用字符集。单向编码转换:在 NGINX 层将一种单字节编码(如 koi8-r、windows-125…...
进程与线程详细介绍
目录 一 进程概念 二 进程的组成 2.1 PCB 2.2 数据段 2.3 程序段 三 进程的五大特点 四 进程的创建与销毁 五 线程概念 六 线程特征 七 进程与线程的区别与联系 区别 联系 一 进程概念 进程是程序的一次执行过程,是操作系统进行资源分配和调度的基本单位…...
JAVA中ArrayList的解析
gogogo出发喽!让我们来认识一下它吧 什么是ArrayList Java 中的 ArrayList 是 Java 集合框架中的重要类,用于实现动态数组 动态数组:可按需自动扩展或缩小,无需手动管理数组大小。比如不断向 ArrayList 添加元素时,…...
【LLM+Code】Devin PromptTools详细解读
Devin 官网:https://devin.ai/ Prompt 大部分篇幅都是tools的直出的description和parameters的一些信息 其他的包含 Communicatework的一些指导Best PracticesInformation HandlingData SecurityResponse Limitationsplanthink You are Devin, a software engi…...
AI应用开发实战分享
一、前言 30年前的IntelWindows互相绑定,让世界被计算机技术重构了一次,有了程序员这个工种。十几年前iPhone、Android前后脚发布,智能手机和移动App互相绑定,引爆了一个长达十几年的移动互联网大跃进时代。而随着人工智能大模型…...
浅聊find_package命令的搜索模式(Search Modes)
背景 find_package应该算是我们使用最多的cmake命令了。但是它是如何找到上游库的.cmake文件的? 根据官方文档,整理下find_package涉及到的搜索模式。 搜索模式 find_package涉及到的搜索模式有两种:模块模式(Module mode)和配置模式(Conf…...
FPGA图像处理(二)-----彩色图像灰度化
由于fpga实现除法相对复杂,故将除法变为乘法再移位。因此每种方法对图像输入数据均分3步进行,极其有效信号打三拍处理。 timescale 1ns / 1ps // // Description: 彩色图像灰度化 // module image_rgb2gray(input wire clk ,input wir…...
Ultralytics中的YOLODataset和BaseDataset
YOLODataset 和 BaseDataset 是 Ultralytics YOLO 框架中用于加载和处理数据集的两个关键类。 YOLODataset类(ultralytics/data/dataset.py)继承于 BaseDataset类(ultralytics/data/base.py) BaseDataset() BaseDataset 是一个…...
Mac 使用 Charles代理生成https服务
在Mac电脑上使用Charles软件通过代理生成HTTPS服务,让手机访问电脑的开发地址,可按以下步骤操作: 一、Charles软件设置 安装与启动Charles:从Charles官网下载并安装Charles软件,之后启动它。开启代理服务 点击菜单栏…...
【PostgreSQL】数据库主从库备份与高可用部署
文章目录 一、架构设计原理二、部署清单示例2.1 StatefulSet配置片段2.2 Service配置三、配置详解3.1 主节点postgresql.conf3.2 从节点配置四、初始化流程4.1 创建复制用户4.2 配置pg_hba.conf五、故障转移示例5.1 自动切换脚本5.2 手动提升从节点六、监控与维护6.1 关键监控指…...
ERP进销存系统源码,SaaS模式多租户ERP管理系统,SpringBoot、Vue、UniAPP技术框架
SaaS ERP管理系统源码,覆盖了整个生产企业所有部门的管理:采购、销售、仓库、生产、财务、质量、OA: ERP源码技术架构:SpringBootVueElementUIUniAPP ERP系统功能清单: 流程处理中心:待审批任务、已审批任…...
Decode rpc invocation failed: null -> DecodeableRpcInvocation
DecodeableRpcInvocation 异常情况解决方法 错误警告官方FAQ 异常情况 记录一下Dubbo调用异常 java.util.concurrent.ExecutionException: org.apache.dubbo.remoting.TimeoutException: Waiting server-side response timeout by scan timer. start time: 2025-05-07 22:09:5…...
VAE和Stable Diffusion的关系
文章目录 ✅ 简单回顾:什么是 VAE?🔄 Stable Diffusion 和 VAE 的关系:🎯 编码器:💥 解码器: 🤔 那 Stable Diffusion 本身是 VAE 吗?🧠 简要对比…...
stable Diffusion模型结构
详细描述一下stable Diffusion的推理过程 其实很简单 prompt先经过textencoder tokenizer,embedding 随机生成噪声图片 通过vae encode压缩成潜空间大小 unet with cross attn 去噪 并融合文本信息 # 上面两个信息如何混合 cross-attention sd模型中各种不同的采样器…...
Milvus(16):索引解释
索引是建立在数据之上的附加结构。其内部结构取决于所使用的近似近邻搜索算法。索引可以加快搜索速度,但在搜索过程中会产生额外的预处理时间、空间和 RAM。此外,使用索引通常会降低召回率(虽然影响可以忽略不计,但仍然很重要&…...
数字化转型-4A架构之应用架构
系列文章 数字化转型-4A架构(业务架构、应用架构、数据架构、技术架构)数字化转型-4A架构之业务架构 前言 应用架构AA(Application Architecture)是规划支撑业务的核心系统与功能模块,实现端到端协同。 一、什么是应…...
中间件-RocketMQ
RocketMQ 基本架构消息模型消费者消费消息模式顺序消息机制延迟消息批量消息事务消息消息重试最佳实践 基本架构 nameServer: 维护broker列表信息,客户端连接时只需要连接nameServer。可配置成集群。 broker:broker分为master和slave,master负…...
AI开发playwright tool提示词
[TASK] 生成一个isModuleElementObject function,若element的qa-test class在对象moduleObj {"qa-test-mycourses-course": "qa-test-mycourses-course-title", "qa-test-discussion-module": "qa-test-discussion-description&…...
《Origin画百图》之带显著性标记的多因子分组柱状图
带显著性标记的多因子分组柱状图 需要数据: 组1(大类) 组2(小类) Y数据 Y误差 选中Y数据和Y误差两列数据, 点击绘图--分组图--多因子分组柱状图 数据列就是上一步选择的Y和Y误差, 点击子组…...
邮件发送频率如何设置?尊重文化差异是关键!
一、不同文化背景,邮件频率大不同 1.工作习惯不一样 一些西方国家,美国和欧洲工作时间和个人时间分得很清楚。工作日的上午 9 点到下午 5 点,这期间发邮件,收件人大概率会看也会回。但是在深夜或者周末发邮件容易让收件人觉得你…...
Python 识别图片上标点位置
Python识别图片上标点位置 要识别图片上的标点位置,可以使用Python中的OpenCV库。以下是几种常见的方法: 方法一:使用颜色阈值识别 import cv2 import numpy as np# 读取图片 image cv2.imread(image.jpg)# 转换为HSV颜色空间 hsv cv2.c…...
JDK Version Manager (JVMS)
以下是使用 JDK Version Manager (JVMS) 工具在Windows系统中安装JDK的详细步骤及注意事项,结合多篇搜索结果整理而成: --- 一、安装前准备 1. 下载JVMS - 访问 [GitHub Releases页面](https://github.com/ystyle/jvms/releases) 或镜像地址&#x…...
办公学习 效率提升 超级PDF处理软件 转换批量 本地处理
各位办公小能手们!我跟你们说啊,有个软件叫超级PDF,那可真是PDF文件处理界的全能选手,专门解决咱们办公、学习时文档管理的各种难题。接下来我给大家好好唠唠它的厉害之处。 先说说它的核心功能。第一是格式转换,这软件…...
阿里云服务器-centos部署定时同步数据库数据-dbswitch
前言: 本文章介绍通过dbswitch工具实现2个mysql数据库之间实现自动同步数据。 应用场景:公司要求实现正式环境数据库数据自动冷备 dbswitch依赖环境:git ,maven,jdk 方式一: 不需要在服务器中安装git和maven,直接用…...
C++函数栈帧详解
函数栈帧的创建和销毁 在不同的编译器下,函数调用过程中栈帧的创建是略有差异的,具体取决于编译器的实现! 且需要注意的是,越高级的编译器越不容易观察到函数栈帧的内部的实现; 关于函数栈帧的维护这里我们要重点介…...
Wireshark抓账号密码
训练内容: 1. 安装Ethereal或者Wireshark,熟悉网络嗅探器的使用方法; 2. 实现浏览器与IIS服务器的ssl安全访问; 3. 利用网络嗅探器截获浏览器访问IIS服务器之间数据包,包括有ssl安全连接(https方式&am…...
【hot100】bug指南记录1
之前学了一阵C,还是更熟悉C的语法呀,转Java还有点不适应........ 这个系列纯纯记录自己刷题犯的愚蠢的错误......hhhh,我是人,one 愚蠢的码人...... 巩固巩固基础好吗?!编程菜鸟.......hhh,又…...
物联网从HomeAssistant开始
文章目录 一、在树梅派5上安装home-assistant二、接入米家1.对比下趋势2.手动安装插件3.配置方式 三、接入公牛1.手动安装插件2.配置方式 一、在树梅派5上安装home-assistant https://www.home-assistant.io/installation/ https://github.com/home-assistant/operating-syste…...
2025年渗透测试面试题总结-网络安全、Web安全、渗透测试笔试总结(一)(附回答)(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 网络安全、Web安全、渗透测试笔试总结(一) 1.什么是 WebShell? 2.什么是网络钓鱼? 3.你获取网络…...
C++ set和map系列(关联式容器)的介绍及使用
欢迎来到干货小仓库 "一个好汉三个帮,程序员同样如此" 1.关联式容器 STL中的容器分为两类,序列式容器和关联式容器。 序列式容器:例如STL库中的vector、list和deque、forward_list(C11)等,这些容器统称为序列式容器&…...
C#与Halcon联合编程
一、加载图片 导入并初始化 using HalconDotNet; ho_Image new HObject();需要在引用中导入 halcondotnet.dll 关联句柄 打开新窗口 //创建一个句柄变量 绑定winform 窗口 HTuple winfowFater this.pictureBox1.Handle; //打开新的窗口 HOperatorSet.SetWindowAttr(&qu…...
5.0.4 VisualStateManager(视觉状态管理器)使用说明
在 WPF 中,VisualStateManager(视觉状态管理器)是用于管理控件在不同状态下的外观变化的核心组件。它通过定义视觉状态(如按钮的默认、悬停、按下状态)和状态过渡动画,使控件在不同交互场景下动态切换样式,而无需重写整个控件模板。以下是其核心用法和示例: 1. 基本概…...
onenet连接微信小程序(mqtt协议)
一、关于mqtt协议 mqtt协议常用于物联网,是一种轻量级的消息推送协议。 其中有三个角色,Publisher设备(客户端)发布主题到服务器,其他的设备通过订阅主题,获取该主题下的消息,Publisher可以发…...
IT需求规格说明书,IT软件系统需求设计文档(DOC)
1 范围 1.1 系统概述 1.2 文档概述 1.3 术语及缩略语 2 引用文档 3 需求 3.1 要求的状态和方式 3.2 系统能力需求 3.3 系统外部接口需求 3.3.1 管理接口 3.3.2 业务接口 3.4 系统内部接口需求 3.5 系统内部数据需求 3.6 适应性需求 3.7 安全性需求 3.8 保密性需…...
探索 DevExpress:构建卓越应用的得力助手
探索 DevExpress:构建卓越应用的得力助手 在当今竞争激烈的软件开发领域,打造高效、美观且功能强大的应用程序是每个开发者的追求。而 DevExpress 作为一款备受瞩目的开发工具,为开发者们提供了实现这一目标的有力支持。在本专栏博客中&…...
康养休闲旅游住宿服务实训室:构建产教融合新标杆
随着健康中国战略的深入实施与银发经济市场的持续扩张,康养休闲旅游作为融合健康管理、文化体验与休闲度假的复合型产业,正迎来前所未有的发展机遇。北京凯禾瑞华科技有限公司依托其在智慧康养领域的技术积淀与产业洞察,创新推出“康养休闲旅…...
Python 程序设计教程:构建您的第一个计算器类
Python 程序设计教程:构建您的第一个计算器类 1. 引言:为什么要学习类? 面向对象编程 (Object-Oriented Programming, OOP) 是一种强大的编程范式,它通过将数据和操作数据的函数(方法)捆绑在一起来组织和结构化代码 1。类 (Class) 是 OOP 的核心概念,不仅在 Python 中…...
深入浅出理解常见的分布式ID解决方案
分布式ID在构建大规模分布式系统时扮演着至关重要的角色,主要用于确保在分布式环境中数据的唯一性和一致性。以下是分布式ID的几个主要作用: 确保唯一性:在分布式系统中,可能有成千上万个实例同时请求ID。分布式ID生成系统能保证即…...
mac 使用 Docker 安装向量数据库Milvus独立版的保姆级别教程
Milvus 特点:开源的云原生向量数据库,支持多种索引类型和GPU加速,能够在亿级向量规模下实现低延迟高吞吐。具有灵活的部署选项和强大的社区支持。 适用场景:适合处理超大规模数据和高性能需求的应用,如图像搜索、推荐…...
Ubuntu日志文件清空的三种方式
清空Ubuntu日志文件可以通过三种方式: 使用命令行清空日志文件:可以使用以下命令清空特定日志文件,例如清空syslog文件: sudo truncate -s 0 /var/log/syslog使用编辑器清空日志文件:可以使用文本编辑器如Nano或Vi来…...
文章记单词 | 第68篇(六级)
一,单词释义 differentiate:英 [ˌdɪfəˈrenʃieɪt] 美 [ˌdɪfəˈrenʃieɪt] ,动词,意为 “区分;辨别;使有差别;使不同;表明… 间的差别;构成… 间差别的原因”。…...
Postman最佳平替, API测试工具Bruno实用教程(一):基础篇
序言 在前文【github星标超3万!Postman最强平替Bruno你用了吗?】中,我们介绍了目前目前Github上广受关注的新锐接口测试工具Bruno,给厌倦了Postman必须在线使用限制的同学提供了一个很好的替代选择。 Bruno的核心优势,官网重点给出了如下几点: 承诺开源和可扩展,并且专…...
LabVIEW 与 NI 硬件(PXI, CompactRIO, DAQ, RF, Vision)的深度研究与未来发展趋势-分析报告
LabVIEW 与 NI 硬件(PXI, CompactRIO, DAQ, RF, Vision)的深度研究与未来发展趋势 引言 本报告旨在对 National Instruments (NI) 的 LabVIEW 软件平台及其核心硬件产品线,包括 PXI、CompactRIO、DAQ、RF 和 Vision 系列,进行深…...
上海雏鸟科技再赴越南,助力10518架无人机刷新吉尼斯记录
近日,上海雏鸟科技携手深圳大漠大、河南豆丁智能在越南胡志明市,使用10518架无人机刷新了“最多无人机同时起飞”的世界吉尼斯记录。本次无人机灯光秀表演以越南南部解放50周年为背景突出了越南历史与民族文化的主题,是一场融合了技术与艺术的…...
在云环境中部署Redis服务与自建Redis服务有啥不同?
云服务 Redis概述 常见的云服务Redis提供商有(阿里云 Redis、华为云 Redis、AWS ElastiCache for Redis等)。这些云提供商负责底层基础设施的部署、配置、维护、操作系统的管理、补丁升级、硬件故障处理等大部分繁琐的运维工作。我们只需要通过控制台或…...