Published on

C++11/14/17/20 核心特性速查表


C++11(革命性更新)

类别特性作用
智能指针std::unique_ptr, std::shared_ptr自动内存管理,避免泄漏。
移动语义移动构造函数、std::move提升性能(避免深拷贝),支持资源转移。
Lambda[capture](args){code}匿名函数,简化回调、STL算法(如sort)。
类型推导auto, decltype简化代码,增强泛型编程。
范围for循环for(auto x : container)简化容器遍历。
右值引用T&&支持完美转发(std::forward),优化临时对象处理。
多线程<thread>, <mutex>, <future>原生多线程支持。
变长模板template<typename... Args>支持参数包(如std::tuple)。

C++14(小优化)

类别特性作用
泛型Lambdaauto 参数Lambda支持自动类型推导(如[](auto x){...})。
返回类型推导auto func()函数返回值自动推导(需保证一致性)。
二进制字面量0b1010直接书写二进制数。
数字分隔符1'000'000提高大数可读性。

C++17(实用增强)

类别特性作用
结构化绑定auto [x,y] = pair(1,2);解构元组/结构体,简化多返回值处理。
std::optionalstd::optional<T>表示可选值(替代nullptr或无效状态)。
std::variantstd::variant<A,B>类型安全的联合体。
std::string_view非拥有字符串视图避免不必要的字符串拷贝。
并行STLstd::execution::par支持并行算法(如sort)。
内联变量inline constexpr int x = 42;头文件中定义常量无需担心重复链接。

C++20(重大更新)

类别特性作用
概念(Concepts)template<typename T> requires ...约束模板参数,提升编译错误可读性。
协程(Coroutines)co_await, co_yield简化异步编程(如生成器、异步I/O)。
Ranges库std::ranges::sort(v)链式操作(如views::filter),更优雅的容器处理。
模块(Modules)import std.core;替代头文件,加速编译。
std::formatstd::format("{}", 42)类型安全的字符串格式化(类似Python)。
三路比较<=>简化比较运算符重载。

一句话总结:
• C++11:从“C with Classes”到现代C++的转折点。

• C++14/17:查漏补缺,增强实用性。

• C++20:迈向抽象化、高性能并发的未来。

THE END