Heim  >  Artikel  >  Backend-Entwicklung  >  Warum heißt „std::move' „std::move'?

Warum heißt „std::move' „std::move'?

Barbara Streisand
Barbara StreisandOriginal
2024-11-25 14:50:11258Durchsuche

Why is `std::move` named `std::move`?

Warum heißt std::move std::move?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn