[TOC] ## auto 用法 ``` auto i = 5; // i 被推导为 int auto arr = new auto(10) // arr 被推导为 int * ``` 注意:auto 不能用于函数传参 ``` int add(auto x, auto y); ``` old ``` for(vector<int>::const_iterator itr = vec.cbegin(); itr != vec.cend(); ++itr) ``` new ``` // 由于 cbegin() 将返回 vector<int>::const_iterator // 所以 itr 也应该是 vector<int>::const_iterator 类型 for(auto itr = vec.cbegin(); itr != vec.cend(); ++itr); ``` ## decltype `decltype`关键字是为了解决 auto 关键字只能对变量进行类型推导的缺陷而出现的 对表达式进行类型推导 ``` auto x = 1; auto y = 2; decltype(x+y) z; // z 是一个 int 型的 ```