Während die Funktion std::move(x) physisch nichts verschiebt, verhält sie sich wie folgt eine Umwandlung in einen R-Wert. Diese Benennungsentscheidung wurde getroffen, um die Lesbarkeit des Codes zu verbessern.
In früheren Diskussionen über R-Wert-Referenzen wurde die Zuckersyntax „move“ eingeführt, um die Absicht hinter dem Casting zu vermitteln, insbesondere um die Move-Semantik zu ermöglichen. Diese Benennung ersetzte das eher technische „cast_to_rvalue“, was Fragen zu seinem Zweck aufwerfen könnte.
Durch die Verwendung von „move“ weist der Code explizit auf die Absicht hin, von der rechten Seite zu wechseln, anstatt von dort zu kopieren. ohne die spezifischen Implementierungsdetails verstehen zu müssen.
Der zugrunde liegende Mechanismus von std::move ist eine Umwandlung in einen x-Wert, aber seine Hauptauswirkung liegt während der Kompilierung, wo er den beeinflussen kann Auswahl der geeigneten Überlast basierend auf dem Vorhandensein von Verschiebungszuweisungsoperatoren. Zur Laufzeit verschwindet std::move vollständig und hat keinen spürbaren Einfluss auf den Objektcode für trivial bewegliche Objekte.
Das obige ist der detaillierte Inhalt vonWarum heißt „std::move' „std::move'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!