how-to-use/cpp/cpp_standard.md

854 B

cpp标准简记

c++11

c++11这里只记录不熟悉的部分。

  • typedef不支持模板using支持。
  • 支持模板参数可变长度,使用...

c++14

  • 从此标准开始,可以在constexpr函数中使用局部变量、循环和分支等简单语句。
  • auto能用于lambda函数传参。
  • 可以让普通函数具备返回值推导。

c++17

  • 可以在ifswitch中定义临时变量。
  • 结构化绑定,auto [x, y, z] = Get()
  • constexpr引入到if判断中,实现编译期间完成分支判断。

c++20

  • auto能用于一般函数传参。

一些语义

  • 引用折叠,参数T&无论收到左值还是右值都将折叠成T&,参数T&&则保留原参数类型。
  • std::movestd::forward实现都很简单,都是只做了最基本的类型转换。