что такое actullay prvalue
prvalue является своего рода выражением. В C ++ 17 и более поздних версиях это специфическое выражение, которое инициализирует объект. Таким образом, prvalue - это просто механизм инициализации объекта. Таким образом, единственными характеристиками prvalue являются тип prvalue (ie: тип объекта, который он будет инициализировать) и механизм, который он будет использовать для инициализации этого объекта.
Как prvalue использование используется определяет, какой объект инициализируется им.
Итак, что же это за значение в этом случае? Это инициализатор, который использует форму инициализации списка для некоторого объекта типа, на который ссылается T
. Это все, что нужно знать о prvalue.
, почему бы не использовать prvalue с прямой инициализацией ссылки
prvalue делает"direct -инициализировать "ссылку. Выражение, которое вы цитировали, c говорит так: «Затем значение prvalue используется для прямой инициализации ссылки.»
Если вы спрашиваете, почему между списком фигурных скобок есть значение prvalue ( aka: {...}
) и ссылка, потому что на каком-то уровне написанный код не имеет смысла.
Ссылка относится к объекту и, следовательно, должна быть инициализирована путем предоставления ему объекта. Braced-init-list не является объектом; на самом деле, это даже не выражение . Это грамматическая конструкция, используемая для инициализации объекта. Итак, вы попытались инициализировать ссылку на объект чем-то, что не является объектом. По общему мнению, это должно быть ошибкой компиляции.
Однако существует очевидная интерпретация того, что ваш код имел в виду . А именно, используйте braced-init-list для инициализации объекта, затем используйте объект для инициализации ссылки. Вот что делает C ++.
Я очень запутался в том, что "prvalue инициализирует свой объект результата" путем повторной инициализации списка
Как уже говорилось, prvalue состоит из двух вещи: тип объекта, который будет инициализирован prvalue, и механизм, который будет использоваться для его инициализации. Это предложение объясняет последнюю часть.