Preguntas etiquetadas con shared-ptr

Referencia a la clase de puntero inteligente contada que implementa la propiedad compartida


8
Diferencia en make_shared y normal shared_ptr en C ++
std::shared_ptr<Object> p1 = std::make_shared<Object>("foo"); std::shared_ptr<Object> p2(new Object("foo")); Muchas publicaciones de google y stackoverflow están ahí, pero no puedo entender por qué make_sharedes más eficiente que usarlo directamente shared_ptr. ¿Alguien puede explicarme paso a paso la secuencia de objetos creados y las operaciones realizadas por ambos para que pueda entender cómo …
276 c++  c++11  shared-ptr 

10
¿Deberíamos pasar un shared_ptr por referencia o por valor?
Cuando una función toma un shared_ptr(de boost o C ++ 11 STL), lo está pasando: por referencia constante: void foo(const shared_ptr<T>& p) o por valor void foo(shared_ptr<T> p):? Preferiría el primer método porque sospecho que sería más rápido. ¿Pero realmente vale la pena o hay problemas adicionales? ¿Podría dar los …
270 c++  c++11  boost  shared-ptr 


16
¿Cómo llamo :: std :: make_shared en una clase con solo constructores protegidos o privados?
Tengo este código que no funciona, pero creo que la intención es clara: testmakeshared.cpp #include <memory> class A { public: static ::std::shared_ptr<A> create() { return ::std::make_shared<A>(); } protected: A() {} A(const A &) = delete; const A &operator =(const A &) = delete; }; ::std::shared_ptr<A> foo() { return A::create(); } …
187 c++  c++11  shared-ptr 

2
shared_ptr a una matriz: ¿debería usarse?
Solo una pequeña consulta al respecto shared_ptr. ¿Es una buena práctica usar shared_ptrseñalar a una matriz? Por ejemplo, shared_ptr<int> sp(new int[10]); Si no, ¿por qué no? Una razón por la que ya estoy al tanto es que uno no puede aumentar / disminuir el shared_ptr. Por lo tanto, no se …
172 c++  c++11  shared-ptr 


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

6
¿Por qué funciona std :: shared_ptr <void>?
Encontré algo de código usando std :: shared_ptr para realizar una limpieza arbitraria al apagar. Al principio pensé que este código no podría funcionar, pero luego intenté lo siguiente: #include &lt;memory&gt; #include &lt;iostream&gt; #include &lt;vector&gt; class test { public: test() { std::cout &lt;&lt; "Test created" &lt;&lt; std::endl; } ~test() { …
129 c++  c++11  shared-ptr 


17
C ++ - pasando referencias a std :: shared_ptr o boost :: shared_ptr
Si tengo una función que necesita trabajar con a shared_ptr, ¿no sería más eficiente pasarle una referencia (para evitar copiar el shared_ptrobjeto)? ¿Cuáles son los posibles efectos secundarios negativos? Visualizo dos casos posibles: 1) dentro de la función se hace una copia del argumento, como en ClassA::take_copy_of_sp(boost::shared_ptr&lt;foo&gt; &amp;sp) { ... …

3
std :: shared_ptr seguridad del hilo explicada
Estoy leyendo http://gcc.gnu.org/onlinedocs/libstdc++/manual/shared_ptr.html y algunos problemas de seguridad de los subprocesos aún no están claros para mí: Standard garantiza que el recuento de referencias se maneja con seguridad para subprocesos y es independiente de la plataforma, ¿verdad? Problema similar: el estándar garantiza que solo un hilo (con la última referencia) …
106 c++  c++11  shared-ptr 

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 &lt;memory&gt;no está ayudando en absoluto! ¡He descargado potenciadores y todo, pero …

2
std :: shared_ptr de esto
Actualmente estoy tratando de aprender a usar punteros inteligentes. Sin embargo, mientras hacía algunos experimentos, descubrí la siguiente situación para la que no pude encontrar una solución satisfactoria: Imagina que tienes un objeto de clase A que es padre de un objeto de clase B (el hijo), pero ambos deberían …


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.