は、次のコードスニペットを取る:なぜコンパイラがconstを提案できないのですか?
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';
}
確かにコンパイラは私のためにそれを示唆するだろうか?
clang
とgcc
を見ると、関連するフラグはありません。
コンパイラがこれを提供しない理由がありますか?
すべての変数が不変の真の関数型言語が好きかもしれません。 – SergeyA
'int(const int x、const int y)'と 'const int i = 5;'は不完全なIMOです。メンバ関数を 'const'としてマークすることだけが重要です。 –
@ SergeyA:彼らは本当に "変数"ではありません。 –