A.7 自动推导变量类型
常规的解决办法是使用typedef来缩短类型名的长度。这种方式在C++11中仍然可行,不过这里要介绍一种新的解决办法:如果一个变量需要通过一个已初始化的变量类型来为其做声明,那么就可以直接使用关键字。这样,编译器就会通过已初始化的变量,去自动推断变量的类型。
auto iter=m.find("my key");
变量类型的推导规则是建立一些语言规则基础上:函数模板参数。其声明形式如下:
在使用auto
的时候,数组类型将衰变为指针,引用将会被删除(除非将类型进行显式为引用),比如:
int some_array[45];
int& r=*p;
auto& y=r; // int&