• [^] # Re: peut-être ceci ?

    Posté par . En réponse au message Petit soucis avec les shared_ptr. Évalué à 1. Dernière modification le 03 juin 2016 à 17:58.

    aussi, tu peux t'assurer facilement du fonctionnement de la mécanique de comptage en mettant p2 dans un scope :

     auto p1 = make_shared<MyInt>(MyInt::get(3));
     cout << "p1 : id = " << p1->get_id() << ", n_ptr = " << p1.use_count() << ", addr = " << p1.get() << endl;
     {
     auto p2 = p1;
     cout << "p1 : id = " << p1->get_id() << ", n_ptr = " << p1.use_count() << ", addr = " << p1.get() << endl;
     cout << "p2 : id = " << p2->get_id() << ", n_ptr = " << p2.use_count() << ", addr = " << p2.get() << endl;
     }
     cout << "p1 : id = " << p1->get_id() << ", n_ptr = " << p1.use_count() << ", addr = " << p1.get() << endl;

    résultat :

    Nb de MyInt : 5
    p1 : id = 3, n_ptr = 1, addr = 0x8289030
    p1 : id = 3, n_ptr = 2, addr = 0x8289030
    p2 : id = 3, n_ptr = 2, addr = 0x8289030
    p1 : id = 3, n_ptr = 1, addr = 0x8289030