C 11 的 Auto 关键字:什么时候太多才足够?
C 11 中引入的 auto 关键字在简化代码方面得到了广泛的应用通过消除显式类型注释,特别是在复杂模板中。然而,一些开发人员将其用法扩展到看似更简单的场景,从而引发了有关适当边界的问题。
预期用途和实用指南
根据标准委员会的说法,auto 应该是当显式类型从上下文中不容易明显但可以从表达式的右侧辨别时使用。此建议与实际用例非常吻合。
适当使用示例
-
复杂类型声明:一个示例是提取组合boost::multi_index 中的键类型使用可能不实用的类型表达式。
-
明显的推理:如果从表达式中可以清楚地看出关联类型,例如使用 std::make_shared 或 begin()/end() 迭代器,则 auto 是合适的。
边缘或不适当使用
-
不明确的类型推断:当类型不是立即明显时使用 auto 可能会导致可读性和维护问题。
-
静态首选类型: 显式类型提供有价值的文档或代码可靠性检查的场景可能需要避免auto.
-
不必要的推断类型:对于像 auto foo = bla() 这样的声明,其中 bla() 显式返回一个shared_ptr,为了清晰起见,首选类型注释。
额外注意事项
- 过度使用 auto 会腐蚀代码文档并阻碍错误检测。
- 当右侧很复杂或不能立即提高代码可读性时,Auto 非常有价值可识别。
- 类型推断和显式注释之间的平衡对于保持可读性和强制执行代码至关重要质量。
以上是C 11 的'auto”关键字:类型推断何时变得过多?的详细内容。更多信息请关注PHP中文网其他相关文章!