Preguntas con la etiqueta [move-semantics]

Lista move-semantics preguntas

No entiendo cuándo debo usar std::movey cuándo debo dejar que el compilador optimice... por ejemplo: using SerialBuffer = vector< unsigned char >; // let compiler optimize it SerialBuffer read( size_t

¿Reutilizar un contenedor movido?

3
respuestas
107
votos
16.1k
vistas

¿Cuál es la forma correcta de reutilizar un contenedor movido? std::vector<int> container; container.push_back(1); auto container2 = std::move(container); // ver1: Do nothing //container2.clear(); // ver2: "Reset" container = std::vector<int>() // ver3:

¿Por qué debería std::move un std::shared_ptr?

8
respuestas
221
votos
103.5k
vistas

Estuve revisando el código fuente de Clang y encontré este fragmento: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } ¿Por qué querría std::moveun std::shared_ptr? ¿Tiene algún sentido transferir la

inicializador_lista y semántica de movimiento

8
respuestas
124
votos
29.2k
vistas

¿ Puedo mover elementos fuera de a std::initializer_list<T>? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); //

¿Qué es std::move() y cuándo debería usarse?

9
respuestas
1.1k
votos
563.7k
vistas

¿Qué es? ¿Qué hace? ¿Cuándo debería usarse? Se agradecen buenos enlaces.