Первоначальное определение prvalue представляло собой просто метку: мы откладываем некоторые значения (а именно те, которые не являются значениями x) и присваиваем им имя. Невозможно получить их адрес, кроме как с помощью необычного this
использования (более или менее потому, что они временные), поэтому определенные свободы можно использовать при их создании и распространении, не нарушая ничего. (См. Также недавнее обсуждение того, что они не «имеют идентичность».)
Новое определение явно говорит, что prvalue - это инициализация, «ожидающая выполнения»: как только целевой объект идентифицированэто то, что инициализируется. (Важно отметить, что инициализация по-прежнему происходит , когда построено значение prvalue, но не , где это.) Это называется «обязательное копирование» на основе эквивалентногоОптимизация, которая уже была распространена.
Что касается примера, то новые определения категорий значений были восприняты как гораздо более простые, что потребовалось меньше примеров. Существует еще один для xvalues (которые являются самой тонкой категорией).