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

C++语言发展历程-2025

C++语言发展历程-2025

前言

C++是一种高级编程语言,由Bjarne Stroustrup于1979年在贝尔实验室创建,是C语言的扩展和改进版。

C++从最初的C with class,经历了C++98、C++03、C++11、C++ 14、C++17、C++20、C++23多次标准化改造,成为一门多范式、高性能的系统级编程语言,广泛应用于系统软件、游戏开发、高性能计算、嵌入式系统等领域。

1. C++ 核心特性

1.1 多范式编程

  • 面向对象编程(OOP):通过封装、继承和多态实现代码复用和抽象
  • 泛型编程:通过模板(template)实现类型无关的编程
  • 面向过程编程:兼容C语言编程
  • 函数式编程:通过Lambda表达式和高阶函数std::function支持函数式特性

1.2 高性能

  • 直接访问硬件资源,支持指针操作和内存管理。
  • 零成本抽象: 在设计和实现抽象级别较高的C++代码(如模板、inline函数、常量表达式、运算符重载、类型擦除等)时,不会引入额外的运行时开销。

1.3 标准库STL

  • 容器:vector、list、map、set
  • 算法:sort、find、transform
  • 迭代器:遍历容器
  • 输入输出:iostream
  • 智能指针:unique_prt、shared_ptr自动管理内存

1.4 现代C++特性

  • 移动语义(C++11):通过右值引用减少对象拷贝,提升性能
  • Lambda表达式(C++11):函数式编程
  • 协程(C++20)):异步编程
  • 概念(Concepts, C++20):为模板参数添加约束,提高编译错误信息的可读性
  • 模块(Modules, C++20):替代 #include,加速编译过程

2. C++标准及关键特性

时间C++ 标准名称通称关键特性备注
1998ISO/IEC 14882:1998C++98STL、try/catch异常处理、命名空间、模板元编程首个C++标准
2003ISO/IEC 14882:2003C++03修复STL故障、成员模板、增强POD类型支持C++98补丁
2011ISO/IEC 14882:2011C++11自动类型推导、移动语义、lambda表达式、智能指针、并发编程、右值引用现代C++里程碑
2014ISO/IEC 14882:2014C++14泛型lambda、constexpr扩展、二进制字面量、统一智能指针创建C++11补充
2017ISO/IEC 14882:2017C++17模块化(实验)、结构化绑定、折叠表达式、文件系统操作、并行算法模块化和库增强
2020ISO/IEC 14882:2020C++20模块(正式)、协程、范围、概念、三路比较运算符模块化和并发
2024ISO/IEC 14882:2024C++23模块导入优化、反射、协程生成器模块化和反射

3. C++标准编译器支持情况

标准版本GCC最低版本Clang最低版本MSVC最低版本生产环境推荐
C++98全部全部全部
★ C++114.8+3.3+VS2013+Ubuntu 20.04 (GCC 9.3) 默认支持 VS2015完全支持
C++145.1+3.5+VS2017+
★ C++177.1+5.0+VS2019+Ubuntu 22.04 (GCC 11.2) 完整支持
C++2010.0+10.0+VS2022+Ubuntu 22.04(GCC 11.2) 默认支持
C++2313.0+15.0+-

Reference:

  1. https://zh.wikipedia.org/wiki/C%2B%2B
  2. https://github.com/myfreeer/cppreference2mshelp
http://www.lryc.cn/news/574433.html

相关文章:

  • python中学物理实验模拟:平抛运动和抛物运动
  • Python csv 模块
  • 数组题解——​轮转数组【LeetCode】
  • 华为云 Flexus+DeepSeek 征文|文案魔盒・Emoji 菌:基于华为云 CCE 集群 Dify 大模型,创意文案智能生成助手
  • 数组题解——​最大子数组和​【LeetCode】(更新版)
  • 黑马程序员苍穹外卖DAY1
  • 【软考高级系统架构论文】论数据分片技术及其应用
  • C指针总结复习(结合deepseek)
  • 深入浅出Node.js后端开发
  • 【TCL 脚本学习 4 -- tcl 脚本 数组定义和使用】
  • 触摸屏(典型 I2C + Input 子系统设备)从设备树解析到触摸事件上报
  • Redis哨兵模式深度解析与实战部署
  • 用 GitHub Issues 做任务管理和任务 List,简单好用!
  • 【图像】ubuntu中图像处理
  • Redis精简总结|一主二从哨兵模式(工作机制)|集群模式|缓存的穿透雪崩击穿
  • NFS服务配置超详细版
  • 第一节 布局与盒模型-Flex与Grid布局对比
  • 考研408《计算机组成原理》复习笔记,第三章(2)——存储器的ROM、RAM(DRAM和SRAM)、磁盘硬盘
  • 鸿蒙容器组件 Row 全解析:水平布局技术与多端适配指南
  • 实现 “WebView2 获取word选中内容
  • Python-1-环境
  • SQLite3 在嵌入式系统中的应用指南
  • 华为云 Flexus+DeepSeek 征文|CCE 集群部署 Dify 平台:【工作流协同高质量知识库】搭建企业级教培行业 Agent 顾问
  • C3新增特性
  • springcloud/springmvc协调作用传递验证信息
  • 如何实现财务自由
  • qt常用控件--02
  • AI-Sphere-Butler之如何将豆包桌面版对接到AI全能管家~新玩法(一)
  • 功率器件的基本公式概念
  • React Native【实用教程】(含图标方案,常用第三库,动画,内置组件,内置Hooks,内置API,自定义组件,创建项目等)