CodeQL 文档

成员上的常量返回值类型

ID: cpp/member-const-no-effect
Kind: problem
Security severity: 
Severity: warning
Precision: very-high
Tags:
   - maintainability
   - readability
   - language-features
Query suites:
   - cpp-security-and-quality.qls

单击以查看 CodeQL 代码库中的查询

此规则查找其返回值类型上带有冗余 const 限定符的成员函数。这可能是由于对如何声明 const 方法感到困惑。特别是,当使用 C++11 尾随返回值类型时,通过将 const 放置在 -> 的错误一侧,更容易错误地声明 const 方法。

建议

应删除冗余的 const 限定符,因为它没有用。如果返回值类型包含嵌入的限定符,则应注意仅删除冗余的限定符。

或者,如果目的是拥有一个 const 方法,则应将限定符移至参数列表之后。

示例

struct S {
  int val;
  
  // The const has no effect here.
  auto getValIncorrect() -> const int {
    return val;
  }
  
  // Whereas here it does make a semantic difference.
  auto getValCorrect() const -> int {
    return val;
  }
};
  • ©GitHub, Inc.
  • 条款
  • 隐私