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
¿Cómo paso un argumento unique_ptr a un constructor o una función?
Soy nuevo en mover semántica en C ++ 11 y no sé muy bien cómo manejar unique_ptrparámetros en constructores o funciones. Considere esta clase haciendo referencia a sí misma: #include <memory> class Base { public: typedef unique_ptr<Base> UPtr; Base(){} Base(Base::UPtr n):next(std::move(n)){} virtual ~Base(){} void setNext(Base::UPtr n) { next = std::move(n); …

5
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 std; unique_ptr<int> foo() { unique_ptr<int> p( new int(10) ); return p; // 1 //return move( …
367 c++  c++11  unique-ptr 



2
¿Por qué no puedo retroceder un_ptr_unico en un vector?
¿Qué tiene de malo este programa? #include <memory> #include <vector> int main() { std::vector<std::unique_ptr<int>> vec; int x(1); std::unique_ptr<int> ptr2x(&x); vec.push_back(ptr2x); //This tiny command has a vicious error. return 0; } El error: In file included from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/mingw32/bits/c++allocator.h:34:0, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/allocator.h:48, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/memory:64, from main.cpp:6: c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/unique_ptr.h: In member function 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const …

6
make_unique y reenvío perfecto
¿Por qué no hay std::make_uniqueuna plantilla de función en la biblioteca estándar de C ++ 11? Encuentro std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); Un poco detallado. ¿No sería mucho mejor lo siguiente? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); Esto oculta newmuy bien y solo menciona el tipo una vez. De todos …

6
std :: unique_ptr con un tipo incompleto no se compilará
Estoy usando el pimpl-idiom con std::unique_ptr: class window { window(const rectangle& rect); private: class window_impl; // defined elsewhere std::unique_ptr<window_impl> impl_; // won't compile }; Sin embargo, recibo un error de compilación con respecto al uso de un tipo incompleto, en la línea 304 en <memory>: Aplicación no válida de ' …

4
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 hiciera)) …







7
¿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() << endl; } int …
97 c++  c++11  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.