Здравствуйте, σ, Вы писали:
σ>Похоже, у тебя возникли, раз ты утверждаешь, что объекта якобы два.
Согласно семантике — два.
Согласно способу реализации — соптимизировали в один.
V>>Описаны внутренние подробности реализации трюка.
σ>Что значит внутренние?
Что и без этой подробности семантика твоей программы не изменится.
V>>Было бы понятно — не задавал бы глупых вопросов.
V>>Согласно семантике речь идёт о двух разных объектах и эта семантика гарантируется.
σ>Гарантируется, что при NRVO объект один и тот же.
Оптимизации не являются обязательными.
Более того, несут с собой некоторые ограничения:
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0135r0.html
В стандарте с С++17 рекомендуется RV-оптимизация только безымянного объекта, т.е. мой пример под это НЕ попадает.
А для моего примера в стандарте сказано — компилтору
разрешается убирать лишнее копирование (или перемещающее копирование).
V>>Не согласен — обоснуй.
σ>У тебя возникли проблемы с прочтением?
У тебя возникли проблемы с формулировкой проблемы.
V>>А что эту семантику можно реализовать через ссылку на одну и ту же область памяти в различных точках программы — так в этом и состоит суть RV-оптимизации. ))
σ>Какие ещё ссылки? У переменных result и someDictionary даже тип не ссылочный)))
Мда...

Согласно определению, переменная — это адрес объекта.
Переменная-поле — адрес от "начала" объекта.
Глобальная — адрес в глобальном сегмента данных.
Локальная — адрес в локальном фрейме стека.
В общем, ликбез — доступ к полям объектов или автоматическим переменным на стеке всегда косвенный.
Прямой доступ возможен только к глобальным переменным.
V>>Но эти ссылки никогда не валидны одновременно, во что тебя уже тыкали.
σ>И дальше что? Операции происходят над объектом, а не «ссылками», а объект в обоих случаях один и тот же.
Операции над объектами происходят через ссылание на них — через имя переменной, либо через явные ссылочные типы данных.
σ>>>— Да какой тут способ, дело не хитрое.
V>>Угу, ты пытался рассуждать о неких проблемах.
σ>Это широко известная проблема (в узких кругах)
Но сформулировать не можешь?
Так и запишем.
V>>Сформулировать проблему ты не смог
σ>Это ты не смог понять
Я пока не видел формулирования, т.е. понимать пока нечего.
Я попытался тебе помочь, но ты там не в состоянии ответить:
http://www.rsdn.org/forum/cpp/8582417.1
V>>Давай ты включишь уже моск и попытаешься, таки, сформулировать проблему.
V>>Можно своими словами, бгг..
σ>Стёкла не выдави своим раздутым ЧСВ
Чья бы корова мычала. ))
Ты зачем-то начал хамить в банальном, в общем-то, случае.
Я тоже в детстве психовал, когда не сразу что-то понимал... Но так то в детстве! ))
V>>От одного сотрясения воздуха абревиатурами RVO/NRVO твои тараканы понятнее не становятся.
σ>От одного сотрясения воздуха словами про "контекст" или "внутренние подробности" твой бред ответом на проблему не становится
Второй раз я дал тебе ссылку, где давно можно было бы ответить по-существу, вместо пререканий.