【发布时间】:2015-11-23 10:52:30
【问题描述】:
当我尝试对自己的代码应用 const-correctness 时,我经常必须在其他模块(由其他程序员编写)中的函数定义中添加 const 限定条件,以便在我自己的代码中使用这些函数。 (see here on back-patching const-correctness)
我一直认为,如果一切编译正常,这可能会导致功能损坏,因为const 标签只在编译时起作用。
然而,前几天我的一位同事坚持在我提交带有const 标签的代码之前,我应该重新运行所有自动化测试,我认为编译这样的代码就足够了。
他有意见吗?有没有办法应用 const 正确性可能会破坏现有功能?
编辑: 需要注意的是,通常我只需要对函数的指针参数执行此操作(例如 Something getSomething(Object* pObj) 到 Something getSomething(const Object* pObj)。我不会更改返回类型或方法常量,因为这对于客户端代码来说不是问题。
【问题讨论】:
-
到目前为止,您得到的所有答案似乎都在谈论将
const添加到变量。我将您的问题理解为将const资格添加到成员函数. 您能否澄清一下您要添加的const的类型? -
如果你有测试,你应该总是运行它们
-
如果您没有测试,那么您应该始终创建它们。
-
嗯,有没有什么工具可以扫码并指出你可以/应该在哪里添加
const? -
当然,我总是在提交自己的代码时运行测试。但是运行所有测试大约需要 3 个小时,这对于添加一些 const 标签来说似乎很多
标签: c++ testing compilation constants