Resultados de la búsqueda a petición "move-semantics"

1 la respuesta

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): ...

3 la respuesta

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 ...

2 la respuesta

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(); // ...

3 la respuesta

¿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 ...

2 la respuesta

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, ...

4 la respuesta

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> ...

2 la respuesta

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 ...

1 la respuesta

¿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 ...

1 la respuesta

¿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 ...

2 la respuesta

¿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 ...