[С++, 17]
Когда выражение prvalue оценивается, стандарт говорит, что оно приводит к значению. В случае 5 выражение является предварительным значением и оценивается как значение 5.
Однако, когда у вас есть значение, в основном инициализатор для объекта, такой как Foo{}. Какова будет ценность этого выражения? Будет ли результат временным объектом, созданным преобразованием prvalue-xvalue? Это поднимает мой более широкий вопрос о разнице между ценностью и объектом.