Questions marquées «shared-ptr»

Classe de pointeur intelligent comptée par référence implémentant la propriété partagée


8
Différence entre make_shared et normal shared_ptr en C ++
std::shared_ptr<Object> p1 = std::make_shared<Object>("foo"); std::shared_ptr<Object> p2(new Object("foo")); De nombreux articles sur Google et stackoverflow sont là-dessus, mais je ne peux pas comprendre pourquoi make_sharedest plus efficace que l'utilisation directe shared_ptr. Quelqu'un peut-il m'expliquer étape par étape la séquence d'objets créés et les opérations effectuées par les deux afin que je …
276 c++  c++11  shared-ptr 

10
Faut-il passer un shared_ptr par référence ou par valeur?
Quand une fonction prend un shared_ptr(de boost ou C ++ 11 STL), le passez-vous: par référence const: void foo(const shared_ptr<T>& p) ou par valeur void foo(shared_ptr<T> p):? Je préférerais la première méthode car je pense qu'elle serait plus rapide. Mais cela en vaut-il vraiment la peine ou y a-t-il des …
270 c++  c++11  boost  shared-ptr 


16
Comment appeler :: std :: make_shared sur une classe avec uniquement des constructeurs protégés ou privés?
J'ai ce code qui ne fonctionne pas, mais je pense que l'intention est claire: 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 à un tableau: faut-il l'utiliser?
Juste une petite question concernant shared_ptr. Est-ce une bonne pratique d'utiliser le shared_ptrpointage vers un tableau? Par exemple, shared_ptr<int> sp(new int[10]); Sinon, pourquoi pas? L'une des raisons dont je suis déjà conscient est que l'on ne peut pas augmenter / décrémenter le shared_ptr. Par conséquent, il ne peut pas être …
172 c++  c++11  shared-ptr 


6
Pourquoi devrais-je std :: déplacer un std :: shared_ptr?
J'ai parcouru le code source de Clang et j'ai trouvé cet extrait: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } Pourquoi voudrais-je std::moveun std::shared_ptr? Y a-t-il un point de transfert de propriété sur une ressource partagée? Pourquoi ne ferais-je pas ça à la place? void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { …

6
Pourquoi std :: shared_ptr <void> fonctionne-t-il
J'ai trouvé du code en utilisant std :: shared_ptr pour effectuer un nettoyage arbitraire à l'arrêt. Au début, je pensais que ce code ne pouvait pas fonctionner, mais j'ai ensuite essayé ce qui suit: #include &lt;memory&gt; #include &lt;iostream&gt; #include &lt;vector&gt; class test { public: test() { std::cout &lt;&lt; "Test created" …
129 c++  c++11  shared-ptr 

4
Différence entre `const shared_ptr <T>` et `shared_ptr <const T>`?
J'écris une méthode d'accesseur pour un pointeur partagé en C ++ qui ressemble à ceci: class Foo { public: return_type getBar() const { return m_bar; } private: boost::shared_ptr&lt;Bar&gt; m_bar; } Donc, pour prendre en charge la const-ness du getBar()type de retour devrait être un boost::shared_ptrqui empêche la modification du Barpoint …
116 c++  boost  const  shared-ptr 


3
std :: shared_ptr sécurité des threads expliquée
Je lis http://gcc.gnu.org/onlinedocs/libstdc++/manual/shared_ptr.html et certains problèmes de sécurité des threads ne sont toujours pas clairs pour moi: Standard garantit que le comptage de références est géré thread-safe et qu'il est indépendant de la plateforme, non? Problème similaire - la norme garantit qu'un seul thread (contenant la dernière référence) appellera delete …
106 c++  c++11  shared-ptr 

4
Où est shared_ptr?
Je suis tellement frustré en ce moment après plusieurs heures à essayer de trouver où se trouve shared_ptr. Aucun des exemples que je vois ne montre le code complet pour inclure les en-têtes pour shared_ptr(et le travail). Disant simplement std, tr1et &lt;memory&gt;n'aide pas du tout! J'ai téléchargé des boosts et …

2
std :: shared_ptr de ceci
J'essaie actuellement d'apprendre à utiliser des pointeurs intelligents. Cependant, en faisant quelques expériences, j'ai découvert la situation suivante pour laquelle je ne pouvais pas trouver de solution satisfaisante: Imaginez que vous ayez un objet de classe A étant parent d'un objet de classe B (l'enfant), mais que les deux devraient …


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.