Effective Modern C++ 笔记 - auto
从概念上来说,auto简单明了,但是它比看起来要微妙一些。
当然,使用它可以节省输入,也可以防止困扰手动类型声明的正确性和性能问题。
但从一个程序员的角度来看,auto的一些类型推断结果,虽然忠实地遵守了规定的算法,但却是错误的。在这种情况下,知道auto推导的结果是很重要的。
5. 尽量用auto代替显式声明
理由:
- 用
auto声明的变量一定会被初始化。 lambda代码可以用auto或std::function来保存,用auto保存的开销更小, 同样道理, 尽量用Lambda代替std::bind。
6. 用auto时小心类型转换问题
比如下面的代码
1 | std::vector<bool> v{true, false, false, true}; |
vector<bool>通过代理对象来操控指定的位, 用auto时拿到的是代理对象本身而不是bool值.