Preguntas etiquetadas con unique-ptr

std :: unique_ptr es un puntero inteligente que retiene la propiedad exclusiva de un objeto a través de un puntero. unique_ptr no se puede copiar ni asignar, dos instancias de unique_ptr no pueden administrar el mismo objeto.

367
Devolver unique_ptr de funciones

unique_ptr<T>no permite la construcción de copias, sino que admite la semántica de movimiento. Sin embargo, puedo devolver un unique_ptr<T>de una función y asignar el valor devuelto a una variable. #include <iostream> #include <memory> using namespace

185
std :: auto_ptr a std :: unique_ptr

Con la llegada del nuevo estándar (y partes ya disponibles en algunos compiladores), std::unique_ptrse supone que el nuevo tipo es un reemplazo std::auto_ptr. ¿Su uso se superpone exactamente (por lo que puedo hacer una búsqueda / reemplazo global en mi código (no es que lo haría, pero si lo...

97
¿Cómo puedo pasar std :: unique_ptr a una función?

¿Cómo puedo pasar una std::unique_ptra una función? Digamos que tengo la siguiente clase: class A { public: A(int val) { _val = val; } int GetVal() { return _val; } private: int _val; }; Lo siguiente no se compila: void MyFunc(unique_ptr<A> arg) { cout << arg->GetVal()...

96
¿Por qué usar std :: make_unique en C ++ 17?

Por lo que tengo entendido, C ++ 14 se introdujo std::make_uniqueporque, como resultado de que no se especificaba el orden de evaluación de parámetros, esto no era seguro: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Explicación: si la evaluación primero asigna la...

83
¿Cómo pasar std :: unique_ptr?

Estoy teniendo mi primer intento de usar C ++ 11 unique_ptr; Estoy reemplazando un puntero crudo polimórfico dentro de un proyecto mío, que es propiedad de una clase, pero que se transmite con bastante frecuencia. Solía ​​tener funciones como: bool func(BaseClass* ptr, int other_arg) { bool...