Я понимаю, что функции не разрешено изменять состояние объекта, но я думал, что где-то я прочитал, что компилятору было позволено предположить, что если функция была вызвана с теми же аргументами, она вернет то же значение и таким образом, можно было бы повторно использовать кешированное значение, если оно было доступно. например.
class object
{
int get_value(int n) const
{
...
}
...
object x;
int a = x.get_value(1);
...
int b = x.get_value(1);
тогда компилятор может оптимизировать второй вызов и либо использовать значение в регистре, либо просто сделать b = a;
Это правда?