Operationen an verschobenen Objekten
Trotz des weitverbreiteten Missverständnisses, dass verschobene Objekte nur zerstört werden können, spezifiziert der C-Standard, dass verschobene Objekte verwendet werden -from-Objekte von Standardbibliothekstypen werden in einen nicht spezifizierten Zustand versetzt, was einen begrenzten Umfang an Operationen ermöglicht. Dieser Zustand entsteht, nachdem ein Objekt verschoben wurde, und ermöglicht Vorgänge, für die normalerweise keine Vorbedingungen gelten.
Unbedingte Vorgänge
Die folgenden Vorgänge können im Allgemeinen auf das Verschieben von Objekten angewendet werden Objekte, ohne auf Vorbedingungen zu stoßen:
Bedingt Vorgänge
Im Gegensatz dazu erfordern die folgenden Vorgänge möglicherweise, dass sich das Objekt nicht in einem nicht spezifizierten Zustand befindet und sind daher bei verschobenen Objekten im Allgemeinen nicht zulässig:
Bezüglich std::swap
In In der beispielhaften Swap-Funktionsvorlage sind die Zuweisungsoperationen (Zeilen 2 und 3) gültig, auch wenn es sich um verschobene Objekte handelt, da dies bei Zuweisungen im Allgemeinen der Fall ist keine Vorbedingungen haben.
Schließlich
Der Standard, der nicht spezifizierte Zustandsobjekte für Standardbibliothekstypen detailliert beschreibt, befindet sich unter 17.6.5.15 [lib.types.movedfrom].
Das obige ist der detaillierte Inhalt vonWelche Vorgänge sind für aus der Standardbibliothek verschobene Objekte in C zulässig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!