move-semantics

Move semantics ist eine Programmiersprachenfunktion, die es ermöglicht, einen Kopiervorgang durch einen effizienteren "move" zu ersetzen, wenn das Quellobjekt ein temporäres oder ein anderweitig ablaufendes Objekt ist.
2
Antworten

Kann ein Stapel eine sichere Ausnahmemethode zum Zurückgeben und Entfernen des obersten Elements mit Verschiebungssemantik haben?

In einer Antwort auf eine Frage zu std::stack::pop() behauptete ich dass der Grund pop den Wert aus Gründen der Ausnahmesicherheit nicht zurückgibt (was passiert, wenn der Kopierkonstruktor eingibt). @Konrad kommentierte, dass dies...
12.04.2010, 06:58
2
Antworten

Sink-Argumente und Verschieben von Semantiken für Funktionen, die fehlschlagen können (starke Ausnahmesicherheit)

Ich habe eine Funktion, die auf einem großen Datenblock arbeitet, der als Sink-Argument übergeben wird. Mein BigData -Typ ist bereits C ++ 11-fähig und kommt mit voll funktionsfähigen Move-Konstruktor- und Move-Assignment-Implementierungen, s...
04.09.2014, 13:53
1
Antwort

Warum leitet der Vektor move ctor kein noexcept () ab?

Warum verschieben Konstruktor für std::vector mit benutzerdefiniertem Zuordner nicht noexcept() aus dem Verhalten des Zuordners? Dies führt dazu, dass die Klasse, die einen solchen Vektor einkapselt, nicht den (anderen) Vektor bilden ka...
22.04.2013, 07:36
2
Antworten

Wie sicher ist diese Methode der Emulation von Bewegungssemantik in C ++ 03?

Verwenden Sie diese Antwort habe ich meine eigene Methode zur Emulation von Bewegungssemantik in C ++ 03 basierend auf swap erfunden. Zuerst erkenne ich move-semantics (d. h. Verfügbarkeit von C ++ 03): %Vor% Dann definiere ich bedin...
23.12.2013, 11:41
2
Antworten

Der Kopierkonstruktor wird nicht aufgerufen, wenn der Wert zurückgegeben wird

Ich habe mit C ++ - Konstruktoren herumgespielt. Hier ist mein Code: %Vor% Die Ausgabe ist: %Vor% Die ersten drei Zeilen zeigen an, dass die lokale Variable in der Funktion foo () mit Konstruktor erstellt und zerstört wird, wenn foo () z...
30.01.2014, 21:35
2
Antworten

Warum ruft das den Kopierkonstruktor auf, nicht den Move-Konstruktor?

Ich habe eine Klasse, PlayerInputComponent : .h: %Vor% .cpp: %Vor% und eine Klasse, PlayerMoveComponen t, die ein Mitglied PlayerInputComponent enthält und es initialisiert, indem ein std::unique_ptr als Parameter übergeben...
30.04.2013, 23:35
2
Antworten

Warum bewirkt resize () eine Kopie und nicht eine Verschiebung des Inhalts eines Vektors, wenn die Kapazität überschritten wird? [Duplikat]

Gegebene Klasse X unten (spezielle Memberfunktionen, die nicht explizit definiert sind, sind für dieses Experiment nicht relevant): %Vor% Das folgende Programm erstellt einen Vektor von Objekten vom Typ X und ändert seine Größe, so d...
31.03.2013, 15:26
3
Antworten

Warum bewegt sich der Konstruktor / Zuweisungsoperator von C ++ 11 nicht wie erwartet?

%Vor% Meine erwartete Ausgabe sollte lauten: %Vor% Die tatsächliche Ausgabe ist jedoch: (Der C ++ - Compiler lautet: Visual Studio 2012) %Vor% Ist das ein Fehler von VC ++? oder nur mein Missverständnis?     
28.09.2012, 21:11
1
Antwort

Warum sollte ich move constructor löschen und den Zuweisungsoperator in einem Singleton verschieben?

Ich habe die folgende Implementierung der Singleton-Richtlinienklasse: %Vor% was ich dann über das seltsam wiederkehrende Vorlagenmuster (CRTP) verwende %Vor% Ich kann nicht herausfinden, warum ich den Verschiebungskonstruktor und den Zu...
20.05.2014, 22:43
2
Antworten

Warum std :: make_move_iterator an Vektorzeichenfolge, aber nicht an Vektorzeichen arbeitet

Ich habe erwartet, dass std::make_move_iterator immer Inhalte verschieben wird, aber es scheint nicht. Es sieht so aus, als ob Elemente in vector<string> verschoben werden, aber nicht in vector<int> . Siehe das folgen...
29.07.2014, 06:27