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

1 la respuesta

Is std :: move safe en una lista de argumentos cuando se reenvía el argumento, no se mueve construido?

Tratando de proporcionar una solución parastd :: string_view y std :: string en std :: unordered_set [https://stackoverflow.com/q/51749081/364696], Estoy jugando reemplazandostd::unordered_set<std::string> constd::unordered_map<std::string_view, ...

1 la respuesta

push_back () y emplace_back () detrás de escena

Actualmente estoy aprendiendo C ++ por mi cuenta, y tengo curiosidad acerca de cómopush_back() yemplace_back() trabajar debajo del capó. Siempre he asumido queemplace_back() es más rápido cuando intenta construir y empujar un objeto grande hacia ...

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

Mover elemento de la matriz boost multi_index

Digamos que tengo un objeto móvil y no copiable y tengo una matriz de múltiples índices con índice random_access. Necesito mover mi objeto fuera del frente de la matriz, pero no puedo encontrar ningún método, eso me daría referencia rvalue / ...

1 la respuesta

¿Es un miembro de datos de un objeto temporal un valor x en C ++ 11?

#include <vector> using namespace std; struct A { vector<int> coll; }; void f(const vector<int>&){} void f(vector<int>&&){} int main() { f(A().coll); // Is "A().coll" an xvalue? }¿C ++ 11 garantizaf(A().coll) llamarávoid f(vector<int>&&)?

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

2 la respuesta

¿Cuál es la justificación de los operadores de asignación de movimientos inseguros y de autoasignación en la biblioteca estándar?

La política estándar de la biblioteca sobre la asignación de movimiento es quela implementación puede asumir que la autoasignación nunca sucederá [/a/13127916]; Esto me parece una muy mala idea, dado que: el contrato de asignación "regular" ...

2 la respuesta

¿Por qué tengo que llamar a move en una referencia de rvalue?

En el siguiente código, ¿por qué la primera llamada nomkme = mvme_rv despacho aT& operator=(const T&&)? #include <iostream> #include <string> #include <vector> using namespace std; using T = vector<int>; int main() { T mvme(10, 1), mkme; T&& ...

1 la respuesta

¿Puede Rust optimizar la copia en bits durante el movimiento de un objeto algún día?

Considera el fragmento struct Foo { dummy: [u8; 65536], } fn bar(foo: Foo) { println!("{:p}", &foo) } fn main() { let o = Foo { dummy: [42u8; 65536] }; println!("{:p}", &o); bar(o); }Un ...

3 la respuesta

Returning an argument passed by rvalue reference

Si tengo una claseA y funciones A f(A &&a) { doSomething(a); return a; } A g(A a) { doSomething(a); return a; } el constructor de la copia se llama al regresara def, pero el constructor de movimiento se usa al regresar deg. Sin embargo, por lo ...