Здравствуйте, rusted, Вы писали:
_>>Естественно затем с 'a' и 'b' можно проводить любые эксперименты (избегая UB естественно) чтобы обнаружить различие в поведении.
R>Не про разницу в поведении, а просто про преимущества варианта со ссылкой. Если в процессе развития кода foo() поменяется и начнет возвращать константную ссылку, то в первом варианте у нас и так и так будет всё оптимально, а во втором появится ненужное копирование.
R>В качестве примера: boost::filesystem::path::generic_string() — под win возвращает новую строку, под nix — ссылку на внутреннюю. И если мы хотим избежать лишних копий и в тоже время иметь один и тот же код на разных платформах, то присваивание ссылке тут в самый раз.
Ну, это в общем то тоже разная семантика при изменении "внешнего окружения". Так что вполне подходит под изначальную задачу. Спасибо.