知识卡片

优先auto

普通读书笔记卡 · 1391

内容

auto 声明要求初始化,并使变量类型跟随初始化表达式,减少迭代器类型误写和跨平台类型宽度不匹配。它也能保存闭包的具体类型,避免不必要的类型擦除成本。便利的前提是表达式确实返回所需类型,代理对象要另查[[显式初始化惯用法]]。

参考来源

- 位置:《Effective Modern C++》第2章《auto》,条款五:优先考虑 auto 而非显式类型声明(源文件:_epub-src/EPUB/text/ch003.xhtml) - 结论依据:原文列举强制初始化、可移植性与效率收益,同时明确指出 auto 存在陷阱。 - 原始内容:auto 变量必须初始化,通常它可以避免一些移植性和效率性的问题,也使得重构更方便,还能让你少打几个字。 正如 Item2 和 6 讨论的, auto 类型的变量可能会踩到一些陷阱。