现代C++语言核心特征解析——专栏介绍

本专栏用来介绍C++新特性,其中包括C++11、C++14、C++17、C++20的特性。

下面是C++各个版本的出现时间:

C++版本  时间
C++11 2011~2013
C++14 2014~2016
C++17 2017~2019
C++20 2020~2022
C++23 2023~

接下来特性更新的顺序不会按照书中的目录,而是按照特性出现时间和是否常用的顺序更新。

C++11新特性

  • lamada表达式(11~20)
  • 列表初始化(11、20)
  • 默认和删除函数
  • 强枚举类型(11、17、20)
  • override和final说明符
  • 基于范围的for循环(11、17、20)
  • 内联和嵌套命名空间(11~20)
  • auto占位符(11~17)
  • decltype说明符(11~17)
  • 右值引用(11、17、20)
  • 非静态成员默认初始化(11、20)
  • 指针字面量nullptr(11)
  • 非受限联合类型
  • 委托构造函数
  • 继承构造函数
  • static_assert声明
  • noexcept关键字(11~20)
  • 类型别名和别名模版(11、14)
  • 线程局部存储
  • 常量表达式(11~20)
  • 基础特性的其他优化(11~20)
  • alignas和alignof(11、17)
  • 字面量优化(11~17)
  • 属性说明符和标准属性(11~20)
  • 可变参数模版(11、17、20)
  • 模版参数优化(11、17、20)
  • SFINAE
  • 模版特性的其他优化(11、14)
  • 函数返回后置类型
  • 新基础类型(11~20)

C++ 17新特性

  • 扩展的聚合类型(17、20)
  • 支持初始化语句的if和switch
  • 结构化绑定(17、20)
  •  扩展的inline说明符
  • 确定的表达式求值顺序
  • typename优化(17、20)
  • 类模版的模版实参推导(17、20)
  • 用户自定义推导指引

C++20新特性

  • 三向比较
  • 新增预处理和宏(17、20)
  • 协程
  • 概念和约束

(考虑到新特性给项目代码安全性和稳定性带来的波动,项目组目前用的比较多的还是C++11,并且只涉及我标黑的几个特性。虽然自C++11出世已经12年了,自己对于大多数的特性并不熟悉)

你可能感兴趣的:(现代C++语言核心特性解析,c++,开发语言)