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

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>&&)?

5 la respuesta

¿Cuándo comenzará a marcar la diferencia la adición de un constructor de movimientos y un operador de asignación de movimientos?

Teniendo en cuenta la alta calidad de los compiladores de hoy en día con respecto a la optimización del valor de retorno (tanto RVO como NRVO), me preguntaba qué complejidad de clase es realmente significativa comenzar a agregar constructores 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 / ...

3 la respuesta

¿Puedo mover-asignar un contenido de std :: map a otro std :: map?

¿Es posible insertar el contenido de un std :: map temporaltemp en otro std :: mapam mediante el uso de la semántica de movimiento, de modo que los valores de la temporal no se copian y se reutilizan? Digamos que uno tiene: std::map<int, Data> ...

2 la respuesta

Cómo mover elementos fuera de la cola de prioridad STL

La cola de prioridad STL de C ++ tiene un método void pop () y un método const ref top (). Por lo tanto, si desea mover elementos fuera de la cola, debe hacer algo como esto: T moved = std::move(const_cast<T&>(myQueue.top()))); myQeue.pop();Esto ...

3 la respuesta

Mover semántica para tipos POD-ish

¿Hay algún punto en implementar un constructor de movimientos y un operador de asignación de movimientos para una estructura o clase que contenga solo tipos primitivos? Por ejemplo, struct Foo { float x; float y; float z; /// ... ctor, copy ...

3 la respuesta

¿Por qué necesitamos establecer la referencia rvalue en null en move constructor?

//code from https://skillsmatter.com/skillscasts/2188-move-semanticsperfect-forwarding-and-rvalue-references class Widget { public: Widget(Widget&& rhs) : pds(rhs.pds) // take source’s value { rhs.pds = nullptr; // why?? } private: struct ...

3 la respuesta

C ++ Move semántica y excepciones

En el próximo estándar C ++ 0x, ¿qué sucede cuando se lanza una excepción dentro / durante el constructor de movimiento? ¿Permanecerá el objeto original? ¿O están el objeto original y el de mover a un estado indefinido? ¿Cuáles son las garantías ...

0 la respuesta

Plantillas de operador de conversión genéricas y semántica de movimiento: ¿alguna solución universal?

Este es un seguimiento dePlantillas explícitas de operadores de conversión refcalificados en acción [https://stackoverflow.com/q/23377647/2644390]. He experimentado con muchas opciones diferentes y estoy dando algunos resultados aquí en un ...

3 la respuesta

Cómo devolver un fstream (C ++ 0x)

Creo que lo entenderé y comenzaré con el código: #include <iostream> #include <fstream> #include <string> class test : public std::ofstream { public: test(const std::string& filename) { this->open(gen_filename(filename)); }; test(const test&) = ...