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

2 la respuesta

¿Por qué `std :: move` se llama` std :: move`?

2 la respuesta

Cómo mover elementos fuera de la cola de prioridad STL

La cola de prioridad STL de C ++ tiene un método void pop () y un método const ref top (). Por lo tanto, si desea mover elementos fuera de la cola, debe hacer algo como esto: T moved = std::move(const_cast<T&>(myQueue.top()))); myQeue.pop();Esto ...

2 la respuesta

¿Cuáles son las reglas para la generación automática de operaciones de movimiento?

En C ++ 98, el compilador de C ++ podríaautomáticamente generar un constructor de copias y un operador de asignación de copias a través de una copia inteligente, p. struct X { std::string s; std::vector<int> v; int n; ...

2 la respuesta

La asignación de movimiento es más lenta que la asignación de copia: ¿error, función o no especificado?

Recientemente me di cuenta de que la adición de la semántica de movimiento en C ++ 11 (o al menos mi implementación de esto, Visual C ++) ha sido activa (y bastante dramática)roto Una de mis optimizaciones. Considere el siguiente ...

2 la respuesta

Versión de solo movimiento de std :: function

Porquestd::function es copiable, el estándar requiere que los llamables utilizados para construirlo también sean copiables: n337 (20.8.11.2.1) template<class F> function(F f); Requiere:F será CopyConstructible.f será invocable (20.8.11.2) para ...

2 la respuesta

¿Son std :: move y std :: copy idénticos?

Traté de hacer algo como: std::copy(std::make_move_iterator(s1.begin()), std::make_move_iterator(s1.end()), std::make_move_iterator(s2.begin()));Y obtuve este error: error: using xvalue (rvalue reference) as lvalue *__result ...

2 la respuesta

Elementos no copiables en vector

Tengo una clase no copiable (es decir, el constructor de copia y el operador de asignación están marcados como 'eliminar'). Me gustaría mantenerlos en un std :: vector. Es una clase RAII, por lo que simplemente no es lo que busco almacenar ...

2 la respuesta

Mover o intercambiar una secuencia de cadenas

Quiero mover un flujo de cadena, en la aplicación del mundo real tengo algún miembro de datos de clase de flujo de cadena, que quiero reutilizar para diferentes cadenas durante la operación. stringstream no tiene una asignación de copia o un ...

2 la respuesta

implementación de estudio visual de "mover semántica" y "referencia de valor"

Encontré un video de Youtube en c ++ 11 concurrencia (parte 3) y el siguiente código, que compila y genera el resultado correcto en el video. Sin embargo, recibí un error de compilación de este código usando Visual Studio 2012. El compilador se ...

2 la respuesta

¿Por qué std :: move toma una referencia hacia adelante?

La implementación destd::move básicamente se ve así: template<typename T> typename std::remove_reference<T>::type&& move(T&& t) { return static_cast<typename std::remove_reference<T>::type&&>(t); }Tenga en cuenta que el parámetro destd::move es ...