rvalues e objetos temporários no FCD

Levei algum tempo para entender a diferença entre um rvalue e um objeto temporário. Mas agora o esboço final do comitê afirma na página 75:

Arvalue [...]é um xvalue,um objeto temporário ou seu subobjeto ou um valor que não esteja associado a um objeto.

Não acredito nos meus olhos. Isso deve ser um erro, certo?

Para esclarecer, eis como eu entendo os termos:

#include <string>

void foo(std::string&& str)
{
    std::cout << str << std::endl;
}

int main()
{
    foo(std::string("hello"));
}

Neste programa, existem doisexpressões que denotam o mesmoobjeto temporário: o valorstd::string("hello") e o valorstr. Expressões não são objetos, mas sua avaliação pode render uma. Especificamente, a avaliação de um pré-valor gera um objeto temporário, mas um pré-valor NÃO é um objeto temporário. Alguém concorda comigo ou eu fiquei louco? :)

questionAnswers(2)

yourAnswerToTheQuestion