c++版本特性

目录

一,c++11之前

1,面向过程编程

2,面向对象编程

3,模板编程

4,异常处理

5,命名空间

6,标准库

二,c++11

1,类型

2,面向过程编程

3,面向对象编程

4,模板编程

5,异常处理

6,标准库

7,异步编程

三,c++14

1,面向过程编程

2,模板编程

3,标准库

四,c++17及以后 待更新


一,c++11之前

1,面向过程编程

数据类型

结构体大小和对齐值

存储类别、存储区

typeid、RTTI

函数重载、操作符重载

2,面向对象编程

this指针、构造函数、析构函数

可见性、封装、继承、友元、泛型继承

虚函数、重载重写覆盖、泛型、多态、override、final

纯虚函数和抽象类、const函数、类型转换

成员默认值、default、delete、多继承、虚继承

3,模板编程

模板编程 (模板函数、模板类、特化、偏特化)

CRTP、Mixin(基于模板编程的c++设计,非c++直接提供)

PS:没有std::enable_if,需要手动实现类似效果。

4,异常处理

异常处理

5,命名空间

命名空间、using

6,标准库

STL标准模板库 (容器、关系、算法、迭代器)

string

iostream、缓冲区

二,c++11

1,类型

auto  (自动类型推导)

decltype、declval   (变量类型提取)

nullptr

强类型枚举 enum class

类型别名 using

右值引用

元组 tuple

2,面向过程编程

lambda表达式

范围 for 循环

constexpr

列表初始化 {}

初始化列表类型 initializer_list

属性[[attribute]]

完美转发 std::forward

3,面向对象编程

委托构造函数、移动构造、继承构造函数

4,模板编程

可变长模板参数

enable_if

SFINAE (基于enable_if的c++设计,非c++直接提供)

5,异常处理

noexcept

6,标准库

unordered_map、unordered_set

智能指针

时间库 chrono

随机数库 std::uniform_int_distribution

正则表达式 std::regex

7,异步编程

线程接口std::thread

互斥锁 std::mutex

原子操作 std::atomic

async

future

三,c++14

1,面向过程编程

二进制字面量 

数字分隔符

放宽 constexpr

[[deprecated]] (标记废弃的 API)

2,模板编程

泛型 lambda

变量模板

3,标准库

std::make_unique

std::exchange

整数序列模板  std::integer_sequence

四,c++17

1,面向过程编程

返回值优化   保证消除复制

std::string_view  字符串视图

类内定义并初始化inline static的变量

结构化绑定

[[nodiscard]][[maybe_unused]][[fallthrough]] 属性

2,模板编程

编译期 if

类模板参数推导

3,标准库

std::optional<T>

std::variant<T...>   类型安全的联合体

并行算法  如 sort, transform, accumulate

std::filesystem

五,c++20及以后 待更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值