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.
1
Antwort

Warum erzwingt std :: vector die Kopie bei der Initialisierung?

Ich habe eine Kopier- / Verschiebeprüfklasse: %Vor% Und ich habe festgestellt, dass running: %Vor% Erzeugt die folgende Ausgabe: %Vor% Warum wird die Initialisierung nicht einfach die Objekte verschieben? Ich weiß, dass std::vector...
17.07.2017, 11:26
3
Antworten

Brauche Hilfe beim Verstehen von C ++ 11 Move Constructors [duplicate]

Als C ++ Neuling habe ich wirklich Probleme, den neuen Move-Constructor von C ++ 11 zu verstehen und ich hoffe, dass jemand eine bestimmte Situation erklären kann, über die ich gestolpert bin. Nehmen wir diesen Beispielcode: %Vor% Also hab...
13.07.2014, 11:21
3
Antworten

Warum werden Kopiervorgänge gelöscht, wenn Verschiebeoperationen deklariert werden?

Wenn eine Klasse explizit eine Kopieroperation deklariert (d. h. einen Kopierkonstruktor oder einen Kopierzuweisungsoperator), werden Bewegungsoperationen für die Klasse nicht deklariert. Wenn eine Klasse jedoch explizit eine Verschiebungsoperat...
14.08.2014, 03:34
2
Antworten

Rückgabe eines Mitglieds aus einem rvalue-Objekt

Nehmen wir zwei Strukturen / Klassen %Vor% Und als %Vor% Die Ausgabe ist %Vor% Frage Wir wissen, dass Mitglieder von Rvalues ​​selbst Rvalues ​​sind. Deshalb wird mit a1 der Move-Konstruktor aufgerufen. Warum wird der Kopierkonstr...
28.01.2018, 19:38
1
Antwort

Wie ordnen Sie ein nicht kopierbares und nicht bewegliches Objekt in std :: map zu?

Ich habe ein Objekt, das ich so beschränken möchte, dass es nur innerhalb von std::map zugewiesen wird. Hier ist der vereinfachte Code: %Vor% Um es auf Mac mit CLang kompilieren zu können, musste ich eine mit Sternchen markierte Zeile hin...
13.10.2014, 14:44
3
Antworten

error durch Verschieben der Zuordnung mit nicht kopierbarem (aber beweglichem) Schlüssel

Warum funktioniert das nicht? %Vor% während dies geschieht: %Vor% Das hat damit zu tun, dass der Schlüsseltyp in der Map nicht kopierbar ist (benötigt std :: map das?). Relevante Fehlerzeilen beim Kompilieren mit g++ -std=c++14 : %Vo...
07.04.2016, 11:57
2
Antworten

Weiterleitparameter für die Weiterleitung - Best Practice

Im folgenden Szenario %Vor% Was wäre der optimale Rückgabetyp? Meine bisherigen Gedanken sind: Gibt den Wert r ref zurück und leitet die Funktionsargumente perfekt weiter: %Vor% Move konstruiere den Rückgabewert: %Vor% Versuch...
17.03.2016, 07:02
2
Antworten

Fehler mit 'std :: vector std :: unique_ptr T'

Ich sehe einige Fehler, die std::vector< std::unique_ptr< T > > mit std::move umgehen. Der Code, der das Problem reproduziert, ist dies: %Vor% Mit clang 3.4 erzeugt dieser Code diesen Fehler: %Vor% Die Situationen schei...
22.07.2015, 01:09
3
Antworten

Warum kann ich ein Element nicht in Vektor von nicht kopierbaren Objekten verschieben?

Der Compiler sagt mir, dass ich versuche, auf eine gelöschte Funktion (d. h. den Kopierkonstruktor eines Lambda-Ausdrucks) zuzugreifen. Aber ich sehe nicht wo. %Vor% ( Code ist auch hier ) (Ich versuche herauszufinden, warum sie shared_p...
06.06.2017, 07:32
1
Antwort

Wie verschiebt Rust Stack-Variablen, die nicht kopierbar sind?

Es gibt ein großartiges Beispiel für die Umzugssemantik von Rust, die hier dokumentiert ist: Rust Move Semantics auf der Rust By Example-Website Ich habe ein grundlegendes Verständnis beider Fälle demonstriert. Der erste Grund dafür, wie ei...
26.03.2016, 01:46