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.

6
¿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 memoria para el puntero sin procesar, luego llama g()y …
96 c++  c++17  unique-ptr 

4
¿Cómo declarar std :: unique_ptr y para qué sirve?
Intento entender cómo std::unique_ptrfunciona y para eso encontré este documento. El autor parte del siguiente ejemplo: #include <utility> //declarations of unique_ptr using std::unique_ptr; // default construction unique_ptr<int> up; //creates an empty object // initialize with an argument unique_ptr<int> uptr (new int(3)); double *pd= new double; unique_ptr<double> uptr2 (pd); // overloaded …
95 c++  pointers  std  unique-ptr 

6
error :: make_unique no es miembro de 'std'
Estoy tratando de compilar el siguiente programa de grupo de subprocesos publicado en la revisión del código para probarlo. /codereview/55100/platform-independant-thread-pool-v4 Pero estoy recibiendo los errores threadpool.hpp: In member function ‘std::future<decltype (task((forward<Args>)(args)...))> threadpool::enqueue_task(Func&&, Args&& ...)’: threadpool.hpp:94:28: error: ‘make_unique’ was not declared in this scope auto package_ptr = make_unique<task_package_impl<R, decltype(bound_task)>> (std::move(bound_task), std::move(promise)); …


4
¿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 val; // plain ordinary …
83 c++  c++11  unique-ptr 






4
Puntero único: ¿por qué se llama al destructor 3 veces?
Tengo un método que devuelve un objeto por valor. El método proviene de una biblioteca sobre la que no tengo control. Para el manejo adicional del objeto, quiero seguir trabajando con un unique_ptr en este objeto. Aquí hay un ejemplo: #include <iostream> #include <memory> class Bla { public: Bla() { …
8 c++  unique-ptr 
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.