成员上的常量返回值类型¶
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
此规则查找其返回值类型上带有冗余 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;
}
};