typedef 类型别名:是某种类型的同义词。
typedef double wages; // wages是double的同义词
typedef wages base, *p; // base是double的同义词,p是double*的同义词
新标准规定了一种新的方法:
using other = int;
int i == other i;
auto 关键字:自动判断变量类型;
auto i =0; // i 为int类型
选择并返回操作数的数据类型
decltype关键字:
decltype(f()) sum =x; \\ sum的类型就是函数f的返回类型
decltype和引用:decltype的结果可以是引用类型
int i = 42, *p = &i, &r = i;
decltype(r+0) b; // 正确:加法的结果是int因此b是一个int
decltype(*p) c; // 错误:c是int&,必须初始化
切记:decltype的表达式如果是加上了括号的变量,结果将是引用
decltype((i)) d; // 错误:d是int&,必须初始化
decltype(i) e; // 正确:e是一个int