shared-ptr

diferencias entre el RPP compartido y el rpp débil

Estoy leyendo el libro de Scott Meyers "Effective C++". Se mencionó que hay tr1::shared_ptr y tr1::weak_ptr actúan como punte ... nte solicito un ejemplo de programa C++. ¿Cómo se resuelve el problema mediante weak_ptrs? (de nuevo, con ejemplo por favor).

¿Por qué el RPP único toma dos parámetros de plantilla cuando el rpp compartido solo toma uno?

Ambos unique_ptr y shared_ptr acepte un destructor personalizado para llamar al objeto que posee. Pero en el caso de unique_p ... te<typename D> shared_ptr(T*, D); //simplified ... }; No puedo ver por qué tal diferencia. ¿Qué requiere eso?

¿Hacer compartido es realmente más eficiente que nuevo?

Estaba experimentando con shared_ptr y make_shared desde C++11 y programé un pequeño ejemplo de juguete para ver lo que realm ... y explicar por qué make_shared es el camino a seguir en términos de eficiencia, a pesar de la sobrecarga de copia delineada?

¿Cuáles son los peligros potenciales al usar boost:: shared ptr?

¿Cuáles son algunas formas en que puede dispararse en el pie al usar boost::shared_ptr? En otras palabras, ¿qué trampas tengo que evitar cuando uso boost::shared_ptr?

¿Cómo eliminar intencionalmente un rpp boost::shared?

Tengo muchos boost::shared_ptr<MyClass> objetos, y en algún momento intencionalmente quiero delete algunos de ellos par ... al vez simplemente asigne un nuevo boost::shared_ptr vacío a la variable? Eso debería desechar el valor antiguo y eliminarlo.

¿impulso, RPP compartido Vs rpp débil? ¿Cuál usar cuándo?

En mi proyecto actual estoy usando boost::shared_ptr bastante extensamente. Recientemente mis compañeros de equipo también h ... quiero convertir weak_ptr a shared_ptr. ¿Poner un bloqueo en weak_ptr para crear un shared_ptr afecta mi código en otro hilo?

C++11 Al borrar ptr compartido, ¿debo usar reset o establecer en nullptr?

Tengo una pregunta sobre las mejores prácticas de C++11. Al borrar un shared_ptr, ¿debo usar la función reset() sin parámetr ... "foo")); foo.reset(); foo = nullptr; ¿Hay alguna diferencia real, o hay ventajas/desventajas en cualquiera de los enfoques?

Debo usar el rpp compartido o el único

He estado haciendo algunos objetos usando el modismo pimpl, pero no estoy seguro de si usarstd::shared_ptr o std::unique_ptr. ... me preguntaba que tal vez usar std::shared_ptr y permitir copias es algún tipo de anti-patrón o algo malo. Es esto correcto?

¿Qué (no) hacer en un constructor

Quiero pedirle sus mejores prácticas con respecto a los constructores en C++. No estoy muy seguro de lo que debería hacer en ... lo durante el tiempo de ejecución. Entonces necesito un indicador. Realmente no sé cómo decidir. ¿Tal vez puedas ayudarme?

¿Cómo funcionan los punteros compartidos?

¿Cómo saben los punteros compartidos cuántos punteros apuntan a ese objeto? (shared_ptr, en este caso)

std:: seguridad compartida del hilo ptr

He leído que " Múltiples hilos pueden leer y escribir simultáneamente diferentes objetos shared_ptr, incluso cuando l ... es futuras) Si es trabajo, puedo actualizar el configuración de esa manera sin romperlo en medio de un manejo de solicitud.

¿Por qué los deletreadores de rpp compartidos tienen que ser copyconstructibles?

En C++11 std::shared_ptr tiene cuatro constructores a los que se pueden pasar objetos deleter d de tipo D. Las firmas de esto ... podría complicar la escritura de deleters para shared_ptr. unique_ptr parece tener requisitos mucho mejores para su deleter.

¿Es seguro el hilo ptr compartido de boost?

Tengo una pregunta sobre boost::shared_ptr<T>. Hay un montón de hilo. using namespace boost; class CResource { // ... gt; nowResource bloqueará el programa cuando el nowResource se libera o el problema destruirá el shared_ptr<CResource>?

¿Cómo inicializar un rpp compartido que es miembro de una clase?

No estoy seguro de una buena manera de inicializar un shared_ptr que es miembro de una clase. ¿Puedes decirme si el camino qu ... A* pa = new A; mA = boost::shared_ptr<A>(pa); B* pB = new B(pa); mB = boost::shared_ptr<B>(pb); }

Usando deleter personalizado con std:: ptr compartido

Estoy tratando de averiguar cómo usar std::shared_ptr con un deleter personalizado. Específicamente, lo estoy usando con SDL_ ... erarla, el código se compila. ¿De qué se trata incluir la función DeleteSurface en la clase Game que está causando problemas?

¿Cómo eligen los punteros inteligentes entre eliminar y eliminar []?

Considere: delete new std :: string [2]; delete [] new std :: string; Todo el mundo sabe que lo primero es un error. Si e ... ew int[2]; // Compile error delete foo; // Compile error delete [] bar; // Compile error

std:: seguridad de Excepción de RPP compartida

Acabo de darme cuenta leyendo esta página que el constructor de std::shared_ptr con un solo argumento puntero no es noexcept ... ared dando la propiedad de la primera asignación a un std::unique_ptr luego transfiriendo la propiedad Otros pensamientos ?

¿Cómo pasar deleter para hacer compartido?

Desde C++11, debido a varias razones, los desarrolladores tienden a usar clases de puntero inteligente para objetos dinámicos ... rrecta de hacerlo? Parece que los compiladores, al menos gcc, da un error a, auto ip = make_shared<int>(12, deleter);

¿El comportamiento estándar de los deleters difiere entre el rpp compartido y el rpp único en el caso de los punteros nulos?

OK, así que primero algunas cosas que podrían ser relevantes: Estoy usando el compilador Clang 3.1, en modo C++11, con la b ... miento especificado difiere entre los dos tipos STL de esta manera? Si no es así, ¿es un error que debería reportar a libc++?

std:: inicialización del rpp compartido: make shared () vs shared ptr (nuevo Foo) [duplicar]

Esta pregunta ya tiene una respuesta aquí: Diferencia en make_shared y shared_ptr normal en C++ ... ir y por qué? P. S. Bastante seguro de que esto ya debe haber sido contestado, pero no puedo encontrar una pregunta similar.