Bonjour a tous. Voilà cela fait quelque temps que je bloque au niveau de la conception d'une classe: une classe de SmartPtr mais qui soit thread safe. Ce qui suit est une ebauche de la declaration de cette classe:
je veux eviter les instructions du genre:
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 template<typename Ty,bool IsMultiThread = false> class SmartPtr; template<typename Ty> class SmartPtr<Ty,true> { public: template<typename Ty> class Proxy; SmartPtr(); explicit SmartPtr(Ty* Elt); .../... SmartPtr::Proxy<Ty>* operator -> (); const SmartPtr::Proxy<Ty>* operator -> () const; //??? operator *(); <--- le probleme est ici. ../... };
Toute proposition es la bienvenue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 struct A { int val; A(int i); }; SmartPtr<A> sp(new A(10) ); int* pi = &(*sp).val;
Merci pour votre aide.
Partager