【发布时间】:2010-09-11 01:16:43
【问题描述】:
我知道该函数不允许更改对象的状态,但我想我在某处读到允许编译器假设如果使用相同的参数调用该函数,它将返回相同的值并且因此可以重用缓存的值(如果可用)。例如
class object
{
int get_value(int n) const
{
...
}
...
object x;
int a = x.get_value(1);
...
int b = x.get_value(1);
然后编译器可以优化第二次调用,或者使用寄存器中的值或者简单地做b = a;
这是真的吗?
【问题讨论】: