Здравствуйте, Sinclair, Вы писали:
"Остальное осмотрел". Ключевые моменты ты все-равно скипнул, отвечать больше не на что.
S>Ну покажите же мне, какие оптимизации может делать компилятор при компиляции foo(const int& x) по сравнению с компиляцией foo(int& x).
Устал поправлять, речь всегда о гарантиях для вызывающего кода:
int x = 42;
foo(x);
std::cout << x;
Для разных вариантов foo будет сгенерен разный код. Для первого варианта будет такое:
foo(42);
std::cout << 42;
Для второго — исходный.
ИМХО, невооруженным взглядом видно, где тут работает ссылочная прозрачность.