Auto

在C++11之前, auto关键字用来指定存储期, 表明变量具有本地范围, 块范围的变量声明(如for循环体内的变量声明)默认为auto存储类型. 其实大多普通声明方式声明的变量都是 auto 变量, 他们不需要明确指定auto关键字, 默认就是auto的了, auto变量在离开作用域是会变程序自动释放.

在新标准中, auto 的功能变为自动类型推导. auto 通知编译器去根据初始化代码推断所声明变量的真实类型. 各种作用域内声明变量都可以用到它, 如: 名空间中, 程序块中, 或是for循环的初始化语句中. 需要注意的是, auto不能用来声明函数的返回值.

    auto i = 42; // i is an int
    auto l = 42LL; // l is an long long
    auto p = new foo(); // p is a foo

在泛型编程中, auto 关键字的出现让一切变得很简单了.

Last updated