Suchergebnisse für Anfrage "move-semantics"
Move Constructor vs Copy Elision. Welches wird angerufen?
Ich habe hier zwei Code-Teile, die ich Ihnen zeigen möchte. Es handelt sich um zwei Klassen, von denen jede einen Verschiebungskonstruktor und eine Funktion enthält, die ein temporäres Ergebnis liefert. Im ersten Fall ruft die Funktion, die ein ...
std :: vector :: emplace_back und std :: move
Ist die Verwendung von @ von Vorteistd::vector::emplace_back undstd::move zusammen? oder es ist nur redundant dastd::vector::emplace_back wird eine Inplace-Konstruktion durchgeführt? Fälle zur Klarstellung: std::vector<std::string> ...
Warum wird der Kopierkonstruktor in der Initialisierungsliste von std :: vector aufgerufen?
Ich habe die folgende sehr einfache Klasse: class Foo { public: Foo() {} Foo(const Foo&) = delete; Foo(Foo&&) {} void operator=(const Foo&) = delete; void operator=(Foo&&) {} void dump() const {} }; Die Klasse ist für das Verschieben ...
Default Konstruktor / Zuweisung verschieben und Kopierkonstruktor / Zuweisung löschen
Nach dem Standard, Wenn die Definition einer Klasse X einen Verschiebungskonstruktor nicht explizit deklariert, wird einer nur dann implizit als Standard deklariert, wenn - X hat keinen vom Benutzer deklarierten Kopierkonstruktor, - X hat ...
Mitgliedsfunktion .begin () und std :: begin ()
Aufruf der Mitgliedsfunktion.begin() vonstd::vector undstd::begin() on rvalues führen zu unterschiedlichen Ausgaben, wie der folgende Test zeigt: vector<int> a{ 1, 2, 3 }; vector<int>::iterator it1 = move(a).begin(); // ...
Move-Konstruktor für abgeleitete Klasse
Ich habe 2 Klassen: template<typename T> class base{ T t; public: base(base &&b): t(std::move(b.t)){} }; template<typename T, typename T2> class derived : protected base<T>{ T2 t2; public: derived(derived &&d): ...
Returning an argument passed by rvalue referenc
Wenn ich eine Klasse habeA und Funktionen A f(A &&a) { doSomething(a); return a; } A g(A a) { doSomething(a); return a; } der Kopierkonstruktor wird bei der Rückgabe aufgerufena vonf, aber der move-Konstruktor wird verwendet, wenn von @ ...
Kann Rust eines Tages die bitweise Kopie während des Verschiebens eines Objekts optimieren?
Betrachten Sie das Snippet struct Foo { dummy: [u8; 65536], } fn bar(foo: Foo) { println!("{:p}", &foo) } fn main() { let o = Foo { dummy: [42u8; 65536] }; println!("{:p}", &o); bar(o); }in ...
Warum muss ich move auf einer rWertreferenz aufrufen?
Warum ruft der erste Aufruf von @ im Code unten nicht aumkme = mvme_rv Versand anT& operator=(const T&&)? #include <iostream> #include <string> #include <vector> using namespace std; using T = vector<int>; int main() { T mvme(10, 1), mkme; T&& ...
Was sind die Gründe für unsichere Verschiebungszuweisungsoperatoren in der Standardbibliothek?
Die Standard-Bibliotheksrichtlinie für die Zuweisung von Verschiebungen lautet die Implementierung darf davon ausgehen, dass die Selbstzuweisung niemals stattfinden wird [/a/13127916]; das scheint mir eine wirklich schlechte idee zu sein, ...