☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

用 auto 声明指针或引用时应显式标明 *、& 等符号

6.4.1 ID_roughAuto
目录 › next › previous

用 auto 声明指针时显式标明 * 号有利于提高可读性,否则会使人误以为是某种非指针的对象。在声明引用时必须显式标明 & 或 && 号,否则成为对象声明,导致逻辑错误或造成不必要的复制开销。

示例:

int* foo();
int& bar();

auto p = foo();   // Bad
auto* q = foo();  // Good

auto r = bar();   // Be careful, ‘r’ is not a reference

for (auto e: container) {  // Is it necessary to copy elements?
    ....
}

例中 p 为指针,但看起来像是个对象,bar 返回引用,但 r 并不是引用,e 是容器元素的复本,这些问题可能与预期不符,需谨慎对待。

依据

ISO/IEC 14882:2011 7.1.6.4 ISO/IEC 14882:2017 10.1.7.4
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.