是否有任何情况下将对象标记为const会产生更好的优化代码(使用优化编译时)?

时间:2013-10-30 07:26:09

标签: c++ optimization const

现代C ++编译器在执行优化时是否会考虑const

1 个答案:

答案 0 :(得分:3)

如果将对象标记为const,编译器可以推断它不会被修改(尽管它可能有可变成员),并且实际对象的值可以在很多内联中内联地方。

知道这一点,如果你有类似if语句或读取这样一个对象的循环条件,并且结果布尔表达式总是为真或总是为假,那么编译器就可以消除它所知道的任何代码分支无法联系到。

总的来说,在const关键字的实际用例(代码清晰度/安全性)旁边堆叠时,优化似乎可以忽略不计。

您可能还想take a look at this post,因为他似乎更详细地总结了可能的优化:)