1.decltype的作用
decltype是C++11新增的一个关键字,与auto的功能一样,都是在编译期间推导变量类型的。不了解auto的可以转到——C++11新特性之auto。
为什么引入decltype?看过上边那篇博客的读者应该知道auto在有些场景中并不适用,所以引入decltype就是为了解决这个问题。
2.decltype的用法
decltype的用法与auto是不同的(可以对比上面博客auto用法):
decltype(exp) name = value;
其中,name为变量名,value为赋给变量的值,exp是个表达式。
(1)decltype根据exp表达式推导变量的类型。
(2)decltype不要求变量必须初始化。(因为都用不到变量值)
3.exp的注意事项
exp的返回值必须是有类型的。例如返回整形、浮点型等,不能返回void。
int a =1;
decltype (a) b = 1; //b的类型推导为int
double c = 1.1
decltype(c) d = 1.2; //d的类型推导为d