现代C ++编译器在执行优化时是否会考虑const
?
答案 0 :(得分:3)
如果将对象标记为const
,编译器可以推断它不会被修改(尽管它可能有可变成员),并且实际对象的值可以在很多内联中内联地方。
知道这一点,如果你有类似if
语句或读取这样一个对象的循环条件,并且结果布尔表达式总是为真或总是为假,那么编译器就可以消除它所知道的任何代码分支无法联系到。
总的来说,在const
关键字的实际用例(代码清晰度/安全性)旁边堆叠时,优化似乎可以忽略不计。
您可能还想take a look at this post,因为他似乎更详细地总结了可能的优化:)