Heim >Backend-Entwicklung >C++ >Wie gehe ich mit verschobenen Objekten in C 11 um?

Wie gehe ich mit verschobenen Objekten in C 11 um?

Susan Sarandon
Susan SarandonOriginal
2024-12-28 05:57:13149Durchsuche

How Do I Handle Moved-From Objects in C  11?

Umgang mit verschobenen Objekten in C 11

Das Verständnis des Konzepts der „verschobenen“ Objekte in C 11 kann eine Herausforderung sein. Wenn ein Objekt verschoben wird, geht es in einen unbestimmten Zustand über. Die Typdefinition sollte jedoch angeben, welche Vorgänge für verschobene Objekte gültig sind.

Bei Standardbibliothekstypen werden verschobene Objekte in einen gültigen, aber nicht spezifizierten Zustand versetzt. Das bedeutet, dass die Voraussetzungen für jede Operation vor der Verwendung überprüft werden sollten. Beispielsweise kann eine verschobene Zeichenfolge nicht zurückgeholt werden, bis die leere Bedingung überprüft wurde.

Bei benutzerdefinierten Typen ist der Entwickler dafür verantwortlich, den Status von verschobenen Objekten zu definieren. Beispielsweise kann ein Pimpl-Objekt angeben, dass das Verschieben von ihm den do_stuff-Vorgang ungültig macht.

Das Sprachdesign verhindert unerwartete verschobene Objekte. Das Verschieben erfolgt entweder, wenn keine weiteren Aktionen für das verschobene Objekt möglich sind oder wenn der Benutzer explizit einen Verschiebungsvorgang anfordert.

Es ist wichtig zu beachten, dass verschobene Objekte nicht für Standardbibliothekskonzepte geeignet sind. Wenn ein Typ nicht in einem gültigen Zustand bleibt (wie durch das Konzept definiert), kann er nicht mit der Standardbibliothek verwendet werden.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit verschobenen Objekten in C 11 um?. 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