ExpertiDict

C++ · Intermediário · Inglês · Técnico

rvalue

ˈɑːr.væl.juːsubstantivo

Expressão temporária sem nome persistente, como um literal ou o resultado de uma função que retorna por valor. É candidata a ter seus recursos movidos em vez de copiados.

Onde usar

O compilador usa a diferença entre lvalue e rvalue para escolher entre sobrecargas de cópia e de movimento. Em code review, aparece ao se discutir por que std::move é necessário.

Em código

int soma(int a, int b) { return a + b; }
int x = soma(1, 2);   // soma(1, 2) é rvalue
int&& r = soma(3, 4); // liga a rvalue

Exemplos

The result of that function is an rvalue, so we can move from it.

O resultado dessa função é um rvalue, então dá para mover dele.

Even a variable declared as rvalue reference is an lvalue inside the function.

Mesmo uma variável declarada como rvalue reference é um lvalue dentro da função.

Cuidado

Não é o mesmo que valor à direita do sinal de igual; o conceito depende de a expressão ter identidade ou não.

Antônimos

lvalue

Origem

Originalmente right value, o valor que aparece à direita de uma atribuição.

Veja também

Todos os termos de C++