c++ - const 正确性警告 c++

标签 c++ constants compiler-warnings

有谁知道 C++ 编译器提供的任何有助于强制执行 const 正确性的警告?例如,如果任何 C++ 方法包含一个从未在方法内部修改过的非常量参数,就会产生警告。我看到有一个名为 -Wsuggest-attribute=const; 的 gnu 编译器警告。但是,当我使用此标志时,我收到一条错误消息,指出它无法识别。任何想法为什么?

最佳答案

我认为不存在这样的警告,主要是因为它没有用。仅仅因为一个参数没有在调用内部被修改,并不意味着它应该被 const 只是为了它。

想想 virtual 函数。或许基类的设计者,虽然没有修改基类中的参数,但希望让扩展类来决定是否修改该参数。

另外,想想大型应用程序,其中修改接口(interface)或 API 或任何成本很高。您现在可能不需要修改参数,但打算在将来这样做。您现在不会将其设为 const,并强制进行完全重建,并且在将来删除 const 时可能会出现错误风险。

关于c++ - const 正确性警告 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10156678/

相关文章:

c++ - 解密 AES 加密文件,函数导致崩溃

c++ - 具有单个参数的 bool 函数映射

c - MSVC const 正确性 : spurious C4090 warning

c - 为什么在此代码中未初始化数组大小时 gcc o 不发出警告?

ios - Swift:类方法只能在类型上声明

c++ - 可以在构造时修改命名的 std::string 吗?

php - 带有常量的PHP错误

c++ - 在 const 方法中修改指针值

编译器不会警告 C 数据或精度丢失

c++ - 关键常量列表