auto类型推导

编译器在编译阶段通过初始值推导出变量的合适类型。因此auto声明的变量必须有初始值。

  1. auto var = var1 + var2; // 根据var1+var2的和推出var的类型。

decltype类型推导

declare type的缩写,“声明类型”。在编译阶段,从表达式推断出类型,不会对表达式求值。

  1. auto var = var1 + var2; // auto必须要初始化。
  2. decltype(var1+var2) var3; // decltype不需要初始值。

lambda表达式

C++_lambda表达式

范围for

  1. // expression:必须是一个序列,
  2. // 初始值列表、数组、vector、string等。支持beigin、end。
  3. // declaration:定义一个变量,序列中每一个元素都能转化成该变量类型。
  4. for(declaration : expression){
  5. statement;
  6. }
  7. char arr[] = "hello world";
  8. for(char c : arr){
  9. cout << c;
  10. }

右值引用

C++_拷贝控制
右值引用是对

智能指针

std::move函数

delete函数和default函数