Compare commits
No commits in common. "22ad6c4f3031f324bc89e788036e6839533de9e1" and "f2b5855dad4a1839b4355d241b20ef50ba64c6a9" have entirely different histories.
22ad6c4f30
...
f2b5855dad
@ -1,32 +0,0 @@
|
|||||||
|
|
||||||
# cpp标准简记
|
|
||||||
|
|
||||||
## c++11
|
|
||||||
|
|
||||||
`c++11`这里只记录不熟悉的部分。
|
|
||||||
|
|
||||||
- `typedef`不支持`模板`而`using`支持。
|
|
||||||
- 支持模板参数可变长度,使用`...`。
|
|
||||||
|
|
||||||
## c++14
|
|
||||||
|
|
||||||
- 从此标准开始,可以在`constexpr`函数中使用局部变量、循环和分支等简单语句。
|
|
||||||
- `auto`能用于`lambda`函数传参。
|
|
||||||
- 可以让普通函数具备返回值推导。
|
|
||||||
|
|
||||||
## c++17
|
|
||||||
|
|
||||||
- 可以在`if`和`switch`中定义临时变量。
|
|
||||||
- 结构化绑定,`auto [x, y, z]` = `Get()`。
|
|
||||||
- 将`constexpr`引入到`if`判断中,实现编译期间完成分支判断。
|
|
||||||
|
|
||||||
## c++20
|
|
||||||
|
|
||||||
- `auto`能用于一般函数传参。
|
|
||||||
|
|
||||||
# 一些语义
|
|
||||||
|
|
||||||
- 引用折叠,参数`T&`无论收到左值还是右值都将折叠成`T&`,参数`T&&`则保留原参数类型。
|
|
||||||
- `std::move`和`std::forward`实现都很简单,都是只做了最基本的类型转换。
|
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user