Preguntas etiquetadas con smart-pointers

Un tipo de datos abstracto que simula un puntero mientras proporciona características adicionales, como recolección automática de basura o verificación de límites.



4
¿Qué tipo de puntero uso cuando?
Ok, entonces la última vez que escribí C ++ para ganarme la vida, std::auto_ptrera todo lo que tenía disponible la biblioteca estándar , y boost::shared_ptrestaba de moda. Realmente nunca examiné el aumento de otros tipos de punteros inteligentes proporcionados. Entiendo que C ++ 11 ahora proporciona algunos de los tipos …

4
punteros inteligentes (impulso) explicados
¿Cuál es la diferencia entre el siguiente conjunto de punteros? ¿Cuándo utiliza cada puntero en el código de producción, si es que lo hace? ¡Los ejemplos serían apreciados! scoped_ptr shared_ptr weak_ptr intrusive_ptr ¿Usas boost en el código de producción?

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 …


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



6
¿Por qué debería std :: mover un std :: shared_ptr?
He estado buscando el código fuente de Clang y encontré este fragmento: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } ¿Por qué querría std::moveun std::shared_ptr? ¿Hay algún punto para transferir la propiedad de un recurso compartido? ¿Por qué no haría esto en su lugar? void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { …




4
¿Dónde está shared_ptr?
Estoy tan frustrado en este momento después de varias horas tratando de encontrar dónde se encuentra shared_ptr. Ninguno de los ejemplos que veo muestra un código completo para incluir los encabezados shared_ptr(y en funcionamiento). Simplemente diciendo std, ¡ tr1y <memory>no está ayudando en absoluto! ¡He descargado potenciadores y todo, pero …

5
¿Cuánto es la sobrecarga de los punteros inteligentes en comparación con los punteros normales en C ++?
¿Cuánto es la sobrecarga de los punteros inteligentes en comparación con los punteros normales en C ++ 11? En otras palabras, ¿mi código será más lento si utilizo punteros inteligentes y, de ser así, cuánto más lento? Específicamente, estoy preguntando sobre C ++ 11 std::shared_ptry std::unique_ptr. Obviamente, las cosas empujadas …

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.