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::move
s 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