Avatar ·

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

¡Hola, colegas! Estoy aprendiendo C++11 y tratando de entender la semántica de movimiento. He leído sobre std::move(), pero no termino de comprender qué es y para qué sirve. Por ejemplo, tengo este código: ```cpp std::vector createBigVector() { std::vector v(1000000, 42); return v; } int main() { std::vector data = createBigVector(); // ¿Copia o movimiento? } ``` Sé que los compiladores pueden aplicar la optimización del valor de retorno (RVO/NRVO), pero si uso explícitamente std::move() en el return, ¿ayuda o estorba? Otro ejemplo: quiero pasar un objeto grande a una función, pero después de pasarlo ya no lo necesito. ¿Cómo usar std::move() correctamente? ```cpp void processData(std::vector data) { // ... mucho trabajo con data } int main() { std::vector bigData = {1, 2, 3, ..., 1000000}; processData(bigData); // ¡Copia! // bigData ya no es necesario } ``` He oído que se puede escribir `processData(std::m