采取以下代码段:

struct Foo{
  int _m=0;
  int Bar(){
    return _m;
  }
};
int Add(int x, int y){
  return x + y;
}
int main(){
  int i = 5;
  std::cout << i << '\n';
}

在进行代码审查时,不可避免地会带来const correctness
这导致以下修订:
 struct Foo{
  int _m=0;
  int Bar() const{
    return _m;
  }
};
int Add(const int x, const int y){
  return x + y;
}
int main(){
  const int i = 5;
  std::cout << i << '\n';
}

当然,编译器可以为我建议吗?
查看clanggcc,我看不到任何相关的标志。

编译器是否选择不提供此功能?

最佳答案

因为他们经常会出错。

您可能会争辩说,这样做对于文件静态类和文件静态函数是有好处的,因为这样,这些项的所有使用对于单个编译单元中的编译器都是可见的(这是此类事情的前提)。但是你有几个呢?

以这种最小的 yield ,花费大量时间将这种功能编程到编译器中根本没有好处。尤其是当您已经有代码审查来代替它时,尤其如此。

但是,专业的静态代码分析工具可能具有此功能。货比三家。

关于c++ - 为什么编译器不能为我建议const?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37148737/

10-16 15:56
查看更多