在C++11中,C++标准协会引入了两个关键字,分别是:auto、decltype。这两个关键字实现了类型推导,使用这两个关键字不仅能获取复杂的数据类型,还能使代码更简洁,提高代码编写效率。
一、auto类型推导
1 酒壶装新酒
auto关键字并不是C++11新增的,在之前的版本中auto像幽灵一样的存在,它只是默默的躺在一个角落,等待着我们的临幸。终于有一天,它引起了人们的注意,这一次是不幸也是机会,它改变了原有的装饰换上了新的外衣。
在C++98/03中,auto一直是作为存储型关键字,代表着“具有自动存储期的局部变量”,乍听上去,十分的高大上,但是它的作用却非常小,很少被大家使用,主要是因为非静态型的局部变量本身就是具备“自动存储期的”。在老的版本中auto关键字使用方法如下:
auto int i=0;//可以直接使用 int i=0;进行替换
也正是因为这种原因,aotu关键字在最新的C++11中被赋予了新的含义,这一次它将作为类型指示符的形式出现,用来提示编译器对此类型的变量进行类型推导。就像是齐天大圣身披五彩霞衣,脚踏七彩祥云而来。
2 auto的推导规则
auto的推导规则总体来说有两个,分别是:



