Bibliothèque de mémoire C ++ - enable_shared_from_this

La description

Il active la fonction membre shared_from_this dans les classes dérivées.

Déclaration

Voici la déclaration pour std :: enable_shared_from_this.

template <class T> class enable_shared_from_this;

C ++ 11

template <class T> class enable_shared_from_this;

Paramètres

T - C'est une classe de pointeur.

Valeur de retour

aucun

Des exceptions

noexcep - Il ne jette aucune exception.

Exemple

Dans l'exemple ci-dessous, explique std :: enable_shared_from_this.

#include <iostream>
#include <memory>

struct C : std::enable_shared_from_this<C> { };

int main () {
   std::shared_ptr<C> foo, bar;

   foo = std::make_shared<C>();

   bar = foo->shared_from_this();

   if (!foo.owner_before(bar) && !bar.owner_before(foo))
      std::cout << "bother pointers shared ownership";

   return 0;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

bother pointers shared ownership