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::movepodem 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::moveredundante :

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