Tag: rvalue-reference

Eine rvalue reference eine neue Sprache-Funktion in C++11 repräsentiert eine Referenz auf ein rvalue. Zusammen mit Referenz zu reduzieren, Sie werden verwendet, zu implementieren und zu aktivieren move-Semantik und perfect forwarding.

Move-Konstruktoren und Statische Arrays

Anzahl der Antworten 4 Antworten
Ich habe die Möglichkeiten der Bewegen Konstruktoren in C++, und ich Frage mich, was sind einige Möglichkeiten der Einnahme von Vorteil, diese Funktion an einem Beispiel, wie unten. Betrachten Sie diesen code: template<unsigned int N> class Foo

Übergabe per Referenz, Konstante Referenz, rvalue-Referenz, Konstante oder rvalue-Referenz?

Anzahl der Antworten 5 Antworten
Ich war lernen durch Verweis übergeben wird, und hier ist der test, den ich gemacht habe: #include <iostream> using namespace std; int i = 0; //If this is uncommented, compiler gives ambiguous definition error. //void paramCheck (string

Ist der pass-by-value-and-dann-bewegen konstruieren eine schlechte Redewendung?

Anzahl der Antworten 7 Antworten
Da haben wir die move-Semantik in C++, heute ist es üblich, zu tun, void set_a(A a) { _a = std::move(a); } Die Argumentation ist, dass, wenn a ist ein rvalue, wird die Kopie erstellte, und es wird

Warum ist "std::move` mit dem Namen `std::move"?

Anzahl der Antworten 2 Antworten
C++11 std::move(x) Funktion nicht wirklich nach überhaupt nichts. Es ist nur eine Besetzung an den r-Wert. Warum wurde das gemacht? Ist das nicht irreführend? Erschwerend kommt hinzu, dass die drei-argument std::move tatsächlich bewegt.. Und vergessen Sie nicht

Ist die Rückgabe per rvalue Referenz effizienter?

Anzahl der Antworten 2 Antworten
Beispiel: Beta_ab&& Beta::toAB() const { return move(Beta_ab(1, 1)); } InformationsquelleAutor Neil G | 2009-07-12

Gibt es irgendeinen Fall, wo eine Rückkehr von einer RValue-Referenz (&&) ist sinnvoll?

Anzahl der Antworten 5 Antworten
Gibt es einen Grund, wenn eine Funktion zurückgeben sollte eine RValue-Referenz? Eine Technik, oder trick, oder ein idiom oder Muster? MyClass&& func( ... ); Ich bin mir der Gefahr bewusst Rückgabe Referenzen im Allgemeinen, aber manchmal tun

c++ unique_ptr argument übergeben

Anzahl der Antworten 4 Antworten
Denke, ich habe den folgenden code: class B { /* */ }; class A { vector<B*> vb; public: void add(B* b) { vb.push_back(b); } }; int main() { A a; B* b(new B()); a.add(b); } Angenommen, dass

Lvalue um rvalue Referenz verbindlich

Anzahl der Antworten 1 Antworten
Der compiler hält sich beschweren ich bin versucht zu binden eine lvalue, um eine rvalue-Referenz, aber ich sehe nicht, wie. Ich bin neu in C++11, move-Semantik, etc., also bitte Geduld mit mir. Habe ich diese Funktion: template

Sollte ich std::move einen shared_ptr in einer move-Konstruktor?

Anzahl der Antworten 3 Antworten
Betrachten: #include <cstdlib> #include <memory> #include <string> #include <vector> #include <algorithm> #include <iterator> using namespace std; class Gizmo { public: Gizmo() : foo_(shared_ptr<string>(new string("bar"))) {}; Gizmo(Gizmo&& rhs); //Implemented Below private: shared_ptr<string> foo_; }; /* //doesn't use std::move

C ++ 11 make_pair mit angegebenen Vorlagenparametern wird nicht kompiliert

Anzahl der Antworten 1 Antworten
War ich nur spielen, um mit g++ 4.7 (einer der späteren snapshots) mit -std=c++11 aktiviert. Ich habe versucht zu kompilieren, einige meiner vorhandenen code-Basis und in einem Fall, der versäumt etwas verwirrt mich. Ich würde mich freuen,

Was bedeutet T & amp; & amp; (Doppel-Ampersand) bedeuten in C ++ 11?

Anzahl der Antworten 4 Antworten
Habe ich in einige der neuen features von C++11 und eine die ich bemerkt habe, ist die doppelte kaufmännisches und-Zeichen in der Deklaration von Variablen, wie T&& var. Für ein start, was dieses Tier heißt? Ich wünschte,

Vorteile der Verwendung von vorwärts

Anzahl der Antworten 6 Antworten
In perfect forwarding, std::forward wird verwendet, um zu konvertieren, die mit Namen rvalue-Referenzen t1 und t2 Unbenannte rvalue-Referenzen. Was ist der Zweck, dies zu tun? Wie würde sich das auf die aufgerufene Funktion inner wenn wir verlassen

C ++ 11 Rvalues ​​und verschieben Semantik Verwirrung (Return-Anweisung)

Anzahl der Antworten 5 Antworten
Ich versuche zu verstehen, rvalue-Referenzen und move-Semantik in C++11. Was ist der Unterschied zwischen diesen Beispielen und die von Ihnen tun wird, keine Vektor-Kopie? Ersten Beispiel std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int> &&rval_ref

Warum verwenden manche Leute Swap für Verschiebungsaufträge?

Anzahl der Antworten 4 Antworten
Beispielsweise stdlibc++ verfügt über die folgenden: unique_lock& operator=(unique_lock&& __u) { if(_M_owns) unlock(); unique_lock(std::move(__u)).swap(*this); __u._M_device = 0; __u._M_owns = false; return *this; } Warum nicht nur weisen die beiden __u-Mitglieder *dieses direkt? Nicht die swap-bedeuten, dass __u "

Gibt es einen Fall, in dem die Rückgabe einer RValue-Referenz (& amp; & amp; amp; & amp; & amp; amp; & amp; & amp; amp; & amp; & amp ;;

Anzahl der Antworten 5 Antworten
Gibt es einen Grund, wenn eine Funktion zurückgeben sollte eine RValue-Referenz? Eine Technik, oder trick, oder ein idiom oder Muster? MyClass&& func( ... ); Ich bin mir der Gefahr bewusst Rückgabe Referenzen im Allgemeinen, aber manchmal tun

Ist die Rückkehr nach Rvalue Referenz effizienter?

Anzahl der Antworten 2 Antworten
beispielsweise: Beta_ab&& Beta::toAB() const { return move(Beta_ab(1, 1)); } InformationsquelleAutor der Frage Neil G | 2009-07-12

Die Regel der Drei wird mit C ++ 11 zur Fünf-Regel?

Anzahl der Antworten 8 Antworten
So, nachdem ich diesen wunderbaren Vortrag auf rvalue-Referenzen, dachte ich, dass jede Klasse profitieren würden von solch einer "move-Konstruktor", template<class T> MyClass(T&& other) Bearbeiten und natürlich ein "move-Zuweisungs-operator", template<class T> MyClass& operator=(T&& other) wie Philipp betont in

Warum deaktiviert der benutzerdefinierte move-constructor den impliziten Kopierkonstruktor?

Anzahl der Antworten 2 Antworten
Während ich lese boost/shared_ptr.hpp, sah ich diesen code: // generated copy constructor, destructor are fine... #if defined( BOOST_HAS_RVALUE_REFS ) //... except in C++0x, move disables the implicit copy shared_ptr( shared_ptr const & r ): px( r.px ),

Verschieben Sie die Aufnahme in Lambda

Anzahl der Antworten 5 Antworten
Wie kann ich die Erfassung von Bewegung (auch bekannt als rvalue-Referenz) in einer C++11 lambda? Ich bin versucht, zu schreiben etwas wie dieses: std::unique_ptr<int> myPointer(new int); std::function<void(void)> = [std::move(myPointer)]{ (*myPointer) = 4; }; InformationsquelleAutor der Frage Lalaland

Korrekte Verwendung von `= delete` für Methoden in Klassen

Anzahl der Antworten 2 Antworten
Ist das folgende snipplet richtige für un-Definition alle anderweitig generierten Methoden und Konstruktoren für eine Klasse? struct Picture { //'explicit': no accidental cast from string to Picture explicit Picture(const string &filename) { /* load image from file