【C++11类型推导】html
一、使用auto的时候,编译器根据上下文状况,肯定auto变量的真正类型。auto在C++14中能够做为函数的返回值,所以auto AddTest(int a, int b)的定义是没问题的。函数
auto AddTest(int a, int b) { return a + b; } int main() { auto index = 10; auto str = "abc"; auto ret = AddTest(1,2); std::cout << "index:" << index << std::endl; std::cout << "str:" << str << std::endl; std::cout << "res:" << ret << std::endl; }
二、只能用于定义函数,不能用于声明函数。spa
#pragma once class Test { public: auto TestWork(int a ,int b); };
但若是把实现写在头文件中,能够编译经过,由于编译器能够根据函数实现的返回值肯定auto的真实类型。code
#pragma once class Test { public: auto TestWork(int a, int b) { return a + b; } };
三、htm
auto 关键字。这会依据该初始化子(initializer)的具体类型产生参数:blog
除此以外,decltype 可以被用来在编译期决定一个表示式的类型。ip
参考:get
一、http://www.javashuo.com/article/p-qazjplio-er.html
编译器
二、it