1. C++98/C++03
- 基本语法和数据类型
- 变量声明和定义
- 基本数据类型(int, float, double, char等)
- 控制结构(if, else, switch, for, while等)
- 面向对象编程
- 类和对象
- 继承和多态
- 构造函数和析构函数
- 标准模板库(STL)
- 容器(vector, list, map等)
- 迭代器
- 算法(sort, find等)
2. C++11
- 自动类型推导
auto
关键字decltype
关键字
- 范围for循环
for (auto& x : container)
- Lambda表达式
[capture](parameters) -> return_type { body }
- 智能指针
std::unique_ptr
,std::shared_ptr
,std::weak_ptr
- 右值引用和移动语义
&&
右值引用std::move
函数
- 线程支持
std::thread
std::mutex
3. C++14
- 泛型Lambda表达式
auto
作为参数类型
- 变量模板
template<typename T> constexpr T pi = T(3.141592653589793238462643383279502884L);
- 返回类型推导
- 函数返回类型自动推导
4. C++17
- 结构化绑定
auto [x, y] = make_pair(1, 2);
- 折叠表达式
template<typename... Args> auto sum(Args... args) { return (args + ...); }
- 内联变量
inline int x = 42;
- 文件系统库
std::filesystem
5. C++20
- 概念(Concepts)
template<typename T> concept Integral = std::is_integral_v<T>;
- 范围库(Ranges)
std::ranges::sort(vec);
- 协程(Coroutines)
co_await
,co_yield
,co_return
- 模块(Modules)
import std.core;
6. C++23(草案)
- 特性预览
- 三向比较运算符(Three-way comparison operator)
- 标准库扩展
结论
每个C++版本都引入了新的特性和改进,以提高代码的可读性、性能和安全性。了解这些关键知识点有助于开发者编写更高效、更现代的C++代码。
希望这个大纲能帮助你撰写一篇详细的博客文章。如果你有任何具体的问题或需要进一步的解释,请告诉我!