auto / decltype 类型推到 (c++ 1x)
最后更新于:2022-04-02 02:08:01
[TOC]
## auto
用法
```
auto i = 5; // i 被推导为 int
auto arr = new auto(10) // arr 被推导为 int *
```
注意:auto 不能用于函数传参
```
int add(auto x, auto y);
```
old
```
for(vector::const_iterator itr = vec.cbegin(); itr != vec.cend(); ++itr)
```
new
```
// 由于 cbegin() 将返回 vector::const_iterator
// 所以 itr 也应该是 vector::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 型的
```
';