我已经多次读到,在 C 或 C++ 代码中强制 const 正确性不仅是可维护性方面的良好实践,而且还可以允许编译器执行优化。然而,我也读到了完全相反的内容——它根本不会影响性能。
因此,您是否有示例表明 const 正确性可以帮助您的编译器提高程序的性能?
const
正确性不能提高性能,因为const_cast
and mutable
存在于语言中,并允许代码一致地违反规则。这在 C++11 中变得更糟,你的const
数据可能例如是一个指向 a 的指针std::atomic
,这意味着编译器必须尊重其他线程所做的更改。
也就是说,编译器查看它生成的代码并确定它是否实际写入给定变量并相应地应用优化是很简单的。
这一切都说,const
正确性是一个good关于可维护性的事情。否则,您的类的客户可能会破坏该类的内部成员。例如,考虑标准std::string::c_str()
-- 如果它不能返回 const 值,您就可以修改字符串的内部缓冲区!
不要使用const
出于性能原因。使用它是出于可维护性的原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)