Resultados de la búsqueda a petición "move-semantics"
Mover constructor para clase derivada
Tengo 2 clases: 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): ...
Constructor / asignación de movimiento predeterminado y constructor / asignación de copia eliminada
De acuerdo con el estándar, Si la definición de una clase X no declara explícitamente un constructor de movimiento, uno se declarará implícitamente como predeterminado si y solo si - X no tiene un constructor de copia declarado por el ...
Función miembro .begin () y std :: begin ()
Llamar a la función miembro.begin() destd::vector ystd::begin() en los valores de los resultados en diferentes salidas, como muestra la siguiente prueba: vector<int> a{ 1, 2, 3 }; vector<int>::iterator it1 = move(a).begin(); // ...
¿Por qué se llama al constructor de copia en la lista de inicializadores de std :: vector?
Tengo la siguiente clase muy simple: class Foo { public: Foo() {} Foo(const Foo&) = delete; Foo(Foo&&) {} void operator=(const Foo&) = delete; void operator=(Foo&&) {} void dump() const {} }; La clase es movible y asignable, pero no es copiable ...
Mover Constructor vs Copiar Elision. ¿Cuál se llama?
Tengo dos piezas de código aquí para mostrarte. Son dos clases y cada una proporciona un Move Constructor y una función que devuelve un temporal. En el primer caso, la función que devuelve un temporal llama alMove Constructor En el segundo caso, ...
std :: vector :: emplace_back y std :: move
¿Hay alguna ventaja de usarstd::vector::emplace_back ystd::move ¿juntos? o es simplemente redundante desdestd::vector::emplace_back hará una construcción en el lugar? Casos de aclaración: std::vector<std::string> ...
Qué tipos estándar están garantizados para estar vacíos / nulos después de usarse como arg en el constructor de movimientos
Lo séshared_ptr, unique_ptr, weak_ptr se garantiza que estarán vacías después de usarse como argumento RVR en el constructor del mismo tipo, pero me pregunto si el estándar especifica esto para algún otrostd:: tipos al lado de los ...
¿Por qué los constructores de movimiento eliminados implícita y explícitamente se tratan de manera diferente?
Cuál es elRazón fundamental o base lógica¿detrás del tratamiento diferente de los constructores de movimiento eliminados implícita y explícitamente en el estándar C ++ 11, con respecto a la generación implícita de constructores de movimiento de ...
¿Un destructor virtual predeterminado impide las operaciones de movimiento generadas por el compilador?
Inspirado en el post¿Por qué el destructor deshabilita la generación de métodos de movimiento implícito? [https://stackoverflow.com/questions/33932824/why-destructor-disabling-the-generation-of-implicit-move-functions] , Me preguntaba si lo mismo ...
¿Qué sucede cuando asigna una constante literal a una referencia rvalue?
Esta es ciertamente una pregunta quisquillosa impulsada principalmente por la curiosidad. Supongamos que tenemos lo siguiente: int x = 5; int&& xref = std::move(x); std::cout << "Before assignment x: " << x << std::endl; std::cout << "Before ...