Suchergebnisse für Anfrage "move-semantics"

2 die antwort

Verschiebungszuweisung langsamer als Kopierzuweisung - Fehler, Funktion oder nicht spezifiziert?

Ich habe kürzlich festgestellt, dass das Hinzufügen von Verschiebungssemantik in C ++ 11 (oder zumindest meiner Implementierung in Visual C ++) eine aktive (und ziemlich dramatische) Wirkung hat.gebrochen eine meiner optimierungen. Betrachten ...

2 die antwort

Nur-Verschieben-Version von std :: function

weilstd::function kopierbar ist, verlangt der Standard, dass Callables, mit denen er erstellt wurde, auch kopierbar sind: n337 (20.8.11.2.1) template<class F> function(F f); Benötigt:F soll CopyConstructible sein.f Für Argumenttypen muss ...

2 die antwort

Sind std :: move und std :: copy identisch?

Ich habe versucht, etwas zu tun wie: std::copy(std::make_move_iterator(s1.begin()), std::make_move_iterator(s1.end()), std::make_move_iterator(s2.begin()));Und diesen Fehler erhalten: error: using xvalue (rvalue reference) as lvalue *__result ...

TOP-Veröffentlichungen

2 die antwort

Nicht kopierbare Elemente im Vektor

Ich habe eine nicht kopierbare Klasse (d. H. Der Kopierkonstruktor und der Zuweisungsoperator sind als "Löschen" markiert). Ich möchte diese in einem std :: vector behalten. Es ist eine RAII-Klasse, also ist es nicht das, wonach ich suche, ...

2 die antwort

Warum kann ich std :: unique_ptr in Lambda in C ++ 14 nicht verschieben?

Ich möchte einen rohen Zeiger in Lambda übergeben, aber ich möchte nicht, dass er durchgesickert ist, wenn das Lambda nicht aufgerufen wird. Es sieht aus wie das void Clean(std::unique_ptr<int>&& list); void f(int* list) ...

2 die antwort

Werte für aktive Objekte zurückgeben

Back im Jahr 2010 befürwortete Herb Sutter die Verwendung von aktiven Objekten anstelle von nackten Fäden in einemArtike [http://www.drdobbs.com/parallel/prefer-using-active-objects-instead-of-n/225700095] auf Dr. Dobb's. Hier ist eine C ++ ...

2 die antwort

Warum wird der Helfer von std :: tuple anstelle von value @ zurückgegebe

Wenn Sie sichget, die Hilfsfunktion fürstd::tuple, Sie werden die folgende Überladung bemerken: template< std::size_t I, class... Types > constexpr std::tuple_element_t<I, tuple<Types...> >&& get( tuple<Types...>&& t ); Mit anderen Worten, es ...

2 die antwort

Warum erlauben die Containerklassen von Qt keine beweglichen, nicht kopierbaren Elementtypen?

Die Qt Container KlassenQList<T>, QVector<T>ei @ usw. müssen die Elementtypen kopierbar sein. Seit C ++ 11 benötigen die STL-Container, dass ihr Elementtyp nur kopierbar oder verschiebbar ist. Warum unterstützen die Qt-Container ...

2 die antwort

Verhindert ein standardmäßiger virtueller Destruktor vom Compiler generierte Verschiebevorgänge?

Von der Post inspiriertWarum deaktiviert Destruktor die Generierung impliziter Verschiebungsmethoden? [https://stackoverflow.com/questions/33932824/why-destructor-disabling-the-generation-of-implicit-move-functions] , Ich habe mich gefragt, ob ...

2 die antwort

Warum werden implizit und explizit gelöschte Verschiebungskonstruktoren unterschiedlich behandelt?

Was ist der Begründung hinter der unterschiedlichen Behandlung implizit und explizit gelöschter Verschiebungskonstruktoren im C ++ 11-Standard in Bezug auf die implizite Erzeugung von Verschiebungskonstruktoren, die Klassen enthalten ...