Sdílet prostřednictvím


Upozornění C26479

Nepoužívejte příkaz std::move k vrácení místní proměnné. (f.48)

Poznámky

Příkaz return je posledním použitím místní proměnné, takže kompilátor používá sémantiku přesunutí k vrácení, kdykoli je to možné. std::move Přidání je v tomto scénáři redundantní. Redundantní std::moves navíc může zabránit elizi kopírování.

Název analýzy kódu: NO_MOVE_RET_ON_LOCALS

Příklad 1

S foo()
{
    S local1{};
    return std::move(local1); // Warning: C26479
}

Pokud chcete tento problém vyřešit, odeberte redundantní std::move:

S foo()
{
    S local1{};
    return local1; // No warning
}

Viz také

F.48 – Nevracejte std::move(local)ES.56 – Zápis std::move() pouze v případě, že potřebujete explicitně přesunout objekt do jiného oboru