几个方便编程的C++特性
前言: C++11的自动化特性给编程提供了不少方便,同时也给调试增加了很多负担,至于取舍看程序员的风格和侧重而定。 auto:自动类型推断 在C++11之前,auto关键字用来指定 存储 期。在新标准中,它的 功能变为类型推 断。auto现在成了一个类型的占位符,通知编译器去根据初始化 代码推断所声明变量的真实类型。各种作用域内声明变量 都可以 用到它。例如,名空间中,程序块中,或是for循环的初始化语句中。 auto i = 42; // i is an int auto l = 42LL; // l is an long long auto p = new foo(); // p is a foo* 使用auto通常意味着更短的代码(除非你 所用 类型是int,它会比auto少一个字母)。试想一下当你遍历STL容器时需要声明的那些迭代器(iterator)。现在不需要去声明那些typedef就可以得到简洁的代码了。 std::map> map; for(auto it = begin(map); it != end(map); ++it) { } 需要注意的是,auto不能用来声明函数的返回值。但如果函数有一个尾随的返回类型时,auto是可以出现在函数声明中返回值位置。这种情况下,auto 并不是告诉编译器去推断返回类型