Aviso C26479
Não use std::move para retornar uma variável local. (F.48)
Comentários
A return
instrução é o último uso de uma variável local, portanto, o compilador usa semântica de movimentação para retorná-la sempre que possível.
Adicionar um std::move
é redundante nesse cenário. Além disso, s redundantes std::move
podem impedir a elisão de cópias.
Nome da análise de código: NO_MOVE_RET_ON_LOCALS
Exemplo 1
S foo()
{
S local1{};
return std::move(local1); // Warning: C26479
}
Para corrigir esse problema, remova o std::move
redundante :
S foo()
{
S local1{};
return local1; // No warning
}
Confira também
F.48 - Não retornar std::move(local)
ES.56 - Gravar std::move()
somente quando precisar mover explicitamente um objeto para outro escopo