Warnung C26479

Verwenden Sie "std::move" nicht, um eine lokale Variable zurückzugeben. (f.48)

Hinweise

Die return Anweisung ist die letzte Verwendung einer lokalen Variablen, sodass der Compiler Verschiebungssemantik verwendet, um sie nach Möglichkeit zurückzugeben. Das Hinzufügen eines std::move Ist-Werts ist in diesem Szenario redundant. Darüber hinaus können redundante std::moves das Kopieren von Elision verhindern.

Codeanalysename: NO_MOVE_RET_ON_LOCALS

Beispiel 1

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

Um dieses Problem zu beheben, entfernen Sie die redundante std::move:

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

Siehe auch

F.48 - Es.56 nicht zurückgeben std::move(local)– Nur schreiben std::move() , wenn Sie ein Objekt explizit in einen anderen Bereich verschieben müssen