Bonjour,
A votre avis quelle solution vaut-il mieux utiliser: shared_ptr ou optional?
Par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
class A
{
public:
   A(std::string P_strNom):m_strNom(P_strNom){
      std::cout<<m_strNom<<": Bonjour!"<<std::endl;
   }
   ~A()
   {
      std::cout<<m_strNom<<": Au revoir"<<std::endl;
   }
protected:
   std::string m_strNom;
};
 
class B
{
public:
   B()
      :m_oShared(new A("Shared")),m_oOptional(boost::in_place("Optional"))
   {
   }
protected:
   boost::shared_ptr<A> m_oShared;
   boost::optional<A> m_oOptional;
};
De la même façon, quelle serait la bonne pratique:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
      m_oShared.reset(new A("Shared 1"));
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
      m_oShared.swap(boost::shared_ptr<A>(new A("Shared 2")));