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

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

2 la respuesta

¿Qué constituye un estado válido para un objeto "movido de" en C ++ 11?

He estado tratando de comprender cómo se supone que debe funcionar la semántica de movimiento en C ++ 11, y tengo muchos problemas para comprender qué condic...

4 la respuesta

¿Por qué copiamos y luego nos movemos?

Vi un 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ó confundido, ya que pe...

3 la respuesta

Cuándo usar Move Constructors / Assignments

He buscado pero no puedo encontrar la respuesta a "Cuándo" para usarlos. Solo escucho que es bueno porque me ahorra esa copia extra. Lo coloqué en ...

3 la respuesta

¿Qué son las semánticas de movimiento en Rust?

En Rust, hay dos posibilidades para tomar una referencia. Pedir prestado, es decir, tome una referencia pero no permita la mutación del destino de referencia. los& El operador toma prestada la propiedad de un valor. Pedir prestado mutablemente, ...

1 la respuesta

¿Por qué el compilador no se queja de que un iterador movido a un bucle for es inmutable?

Estoy leyendo la segunda edición del Rust Book y encontré el siguiente ejemplo en la sección de iteradores: let v1 = vec![1, 2, 3]; let v1_iter = v1.iter(); for val in v1_iter { println!("Got: {}", val); }¿Por qué el compilador no se queja de ...

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

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

3 la respuesta

¿Por qué no se usa la construcción de movimiento al iniciar un vector desde la lista de inicializadores (a través del constructor implícito)

Para demostrar la semántica de movimiento, escribí el siguiente código de ejemplo, con un constructor implícito de int. struct C { int i_=0; C() {} C(int i) : i_( i ) {} C( const C& other) :i_(other.i_) { std::cout << "A copy construction was ...

4 la respuesta

¿Cómo sabe el compilador para mover variables locales?

Tengo curiosidad por saber exactamente cómo funciona esta característica. Considerar algo como