有谁知道 C++ 编译器提供的任何有助于强制执行 const 正确性的警告?例如,如果任何 C++ 方法包含一个从未在方法内部修改过的非常量参数,就会产生警告。我看到有一个名为 -Wsuggest-attribute=const; 的 gnu 编译器警告。但是,当我使用此标志时,我收到一条错误消息,指出它无法识别。任何想法为什么?
最佳答案
我认为不存在这样的警告,主要是因为它没有用。仅仅因为一个参数没有在调用内部被修改,并不意味着它应该被 const
只是为了它。
想想 virtual
函数。或许基类的设计者,虽然没有修改基类中的参数,但希望让扩展类来决定是否修改该参数。
另外,想想大型应用程序,其中修改接口(interface)或 API 或任何成本很高。您现在可能不需要修改参数,但打算在将来这样做。您现在不会将其设为 const
,并强制进行完全重建,并且在将来删除 const
时可能会出现错误风险。
关于c++ - const 正确性警告 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10156678/