Preguntas etiquetadas con move-semantics

1705
¿Qué es la semántica de movimiento?

Acabo de terminar de escuchar la entrevista de podcast de radio de Ingeniería de Software con Scott Meyers sobre C ++ 0x . La mayoría de las nuevas funciones tenían sentido para mí, y ahora estoy realmente entusiasmado con C ++ 0x, con la excepción de una. Todavía no obtengo semántica de movimiento...

762
push_back vs emplace_back

Estoy un poco confundido con respecto a la diferencia entre push_backy emplace_back. void emplace_back(Type&& _Val); void push_back(const Type& _Val); void push_back(Type&& _Val); Como hay una push_backsobrecarga tomando una referencia de valor no entiendo en qué se...

127
¿Cuándo hacer un tipo no movible en C ++ 11?

Me sorprendió que esto no apareciera en mis resultados de búsqueda, pensé que alguien habría preguntado esto antes, dada la utilidad de la semántica de movimiento en C ++ 11: ¿Cuándo debo (o es una buena idea para mí) hacer una clase no movible en C ++ 11? (Razones otros de los problemas de...

104
¿Cómo transfiere std :: move () valores a RValues?

Me encontré sin comprender completamente la lógica de std::move() . Al principio, lo busqué en Google, pero parece que solo hay documentos sobre cómo usar std::move() , no cómo funciona su estructura. Quiero decir, sé cuál es la función del miembro de la plantilla, pero cuando miro std::move()...

98
¿Por qué copiamos y luego nos movemos?

Vi código en algún lugar en el que alguien decidió copiar un objeto y luego moverlo a un miembro de datos de una clase. Esto me dejó confuso porque pensé que el objetivo de mudarse era evitar copiar. Aquí está el ejemplo: struct S { S(std::string str) : data(std::move(str)) {} }; Aquí están...