Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Nie używaj zmiennej std::move, aby zwrócić zmienną lokalną. (f.48)
Uwagi
Instrukcja return jest ostatnim użyciem zmiennej lokalnej, więc kompilator używa semantyki przenoszenia, aby zwrócić ją zawsze, gdy jest to możliwe.
Dodanie elementu std::move jest nadmiarowe w tym scenariuszu. Ponadto nadmiarowe std::moveelementy mogą zapobiegać elizji kopiowania.
Nazwa analizy kodu: NO_MOVE_RET_ON_LOCALS
Przykład 1
S foo()
{
S local1{};
return std::move(local1); // Warning: C26479
}
Aby rozwiązać ten problem, usuń nadmiarowy std::moveelement :
S foo()
{
S local1{};
return local1; // No warning
}
Zobacz też
F.48: Nie return std::move(local)
ES.56: Zapisz std::move() tylko wtedy, gdy trzeba jawnie przenieść obiekt do innego zakresu