gpt4 book ai didi

c++ - const-correctness 可以提高性能吗?

转载 作者:IT老高 更新时间:2023-10-28 12:06:44 29 4
gpt4 key购买 nike

我已经读过很多次了,在 C 或 C++ 代码中强制执行 const 正确性不仅在可维护性方面是一个很好的做法,而且它还可以让你的编译器执行优化。但是,我也读到了完全相反的情况——它根本不影响性能。

因此,您是否有示例说明 const 正确性可以帮助您的编译器提高程序的性能?

最佳答案

const 正确性并不能提高性能,因为 const_castmutable 在语言中,并且允许代码符合地违反规则。这在 C++11 中变得更糟,您的 const 数据可能例如是指向 std::atomic 的指针,这意味着编译器必须尊重其他线程所做的更改。

也就是说,编译器查看它生成的代码并确定它是否实际写入给定变量并相应地应用优化是微不足道的。

总而言之,const 正确性在可维护性方面是一个 的事情。否则,您类(class)的客户可能会破坏该类(class)的内部成员。例如,考虑标准的 std::string::c_str()——如果它不能返回一个 const 值,你就可以搞乱字符串的内部缓冲区!

出于性能原因,请勿使用 const。出于可维护性的原因使用它。

关于c++ - const-correctness 可以提高性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3435026/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com