Suchergebnisse für Anfrage "move-semantics"
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 ...
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 ...
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 ...
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, ...
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) ...
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 ++ ...
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 ...
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 ...
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 ...
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 ...