Heim > Backend-Entwicklung > C++ > Welche Operationen sind für aus C verschobene Objekte gültig?

Welche Operationen sind für aus C verschobene Objekte gültig?

Barbara Streisand
Freigeben: 2024-12-25 17:42:15
Original
174 Leute haben es durchsucht

What Operations Are Valid on C   Moved-From Objects?

Von welchen Objekten kann verschoben werden?

Der C-Standard ermöglicht das Verschieben von Objekten der in der C-Standardbibliothek definierten Typen. Dies bedeutet, dass ein neues Objekt mit den Daten eines vorhandenen Objekts erstellt und initialisiert werden kann, das dann in einen nicht spezifizierten Zustand verschoben wird.

Gültige Operationen für verschobene Objekte

Der Standard definiert, dass verschobene Objekte in einen gültigen, aber nicht spezifizierten Zustand versetzt werden sollen. Dies bedeutet, dass jede Operation ohne Vorbedingungen für ein verschobenes Objekt ausgeführt werden kann. Solche Operationen umfassen typischerweise:

  • Zerstörung
  • Zuweisung
  • Konstante Beobachter (z. B. get, empty, size)

Vorgänge mit Vorbedingungen

Vorgänge, die im Allgemeinen vorhanden sind Vorbedingungen wie Dereferenzierung und Pop_back können nicht direkt auf verschobene Objekte angewendet werden.

Beispiel: Swap-Funktionsvorlage

Die Swap-Funktionsvorlage in der Standardbibliothek zeigt dies die Möglichkeit, verschobene Objekte zuzuweisen. In dieser Funktion wird das verschobene Objekt zunächst einer temporären Variablen zugewiesen (Zeile 1). Dem ursprünglichen Objekt wird dann der Wert des anderen Objekts zugewiesen (Zeile 2), bevor ihm der Wert der temporären Variablen zugewiesen wird (Zeile 3).

Hinweis zur Initialisierungssyntax

Die Verwendung von T c = std::move(a) in Zeile 1 anstelle von T c(std::move) ist für die Diskussion von Verschiebeoperationen nicht relevant. Es ist einfach eine Frage des Stils und der Vorlieben.

Das obige ist der detaillierte Inhalt vonWelche Operationen sind für aus C verschobene Objekte gültig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage