auto类型推导
编译器在编译阶段通过初始值推导出变量的合适类型。因此auto声明的变量必须有初始值。
auto var = var1 + var2; // 根据var1+var2的和推出var的类型。
decltype类型推导
declare type的缩写,“声明类型”。在编译阶段,从表达式推断出类型,不会对表达式求值。
auto var = var1 + var2; // auto必须要初始化。
decltype(var1+var2) var3; // decltype不需要初始值。
lambda表达式
范围for
// expression:必须是一个序列,
// 初始值列表、数组、vector、string等。支持beigin、end。
// declaration:定义一个变量,序列中每一个元素都能转化成该变量类型。
for(declaration : expression){
statement;
}
char arr[] = "hello world";
for(char c : arr){
cout << c;
}
右值引用
C++_拷贝控制
右值引用是对