//过去的这种冗长的类型声明
std::map<int, std::string>::const_iterator itr = m.find(1);
//现在可以写成这样了auto itr = m.find(1);
//编译器会自动推导出正确的类型。字面量也可以:auto i = 1; // intauto d = 1.1; // doubleauto s = "hi"; // const char*auto a = { 1, 2 }; // std:: initializer_list<int>
泛型编程方面
template<typename T, typename K>
autoadd(T a, K b) {
return a + b;
}
auto a = add(1, 2); // int add(int, int) a -> intauto b = add(1, 2.2); // double add(int, double) b -> double//注:留意第二个调用,返回值被正确地推断为double类型。