知识卡片
优先auto
内容
auto 声明要求初始化,并使变量类型跟随初始化表达式,减少迭代器类型误写和跨平台类型宽度不匹配。它也能保存闭包的具体类型,避免不必要的类型擦除成本。便利的前提是表达式确实返回所需类型,代理对象要另查[[显式初始化惯用法]]。
参考来源
- 位置:《Effective Modern C++》第2章《auto》,条款五:优先考虑 auto 而非显式类型声明(源文件:_epub-src/EPUB/text/ch003.xhtml)
- 结论依据:原文列举强制初始化、可移植性与效率收益,同时明确指出 auto 存在陷阱。
- 原始内容:auto 变量必须初始化,通常它可以避免一些移植性和效率性的问题,也使得重构更方便,还能让你少打几个字。 正如 Item2 和 6 讨论的, auto 类型的变量可能会踩到一些陷阱。