Bonjour,

Petite question que je me pose à propos de la sémantique de valeur. Je possède une classe implémentant l'idiome Pimpl :

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
 
class Handler {
//méthodes du handler
 
private:
   shared_ptr<HandlerImpl> m_impl;
};
 
class HandlerImpl {
//interface d'implémentation du handler (méthodes virtuelles ou virtuelles pures)
};
 
class HandlerItem : public HandlerImpl {
//implémentation de l'interface
};
Ma question est : peut-on considérer que Handler a une sémantique de valeur ? On peut en effet le copier, l'assigner en toute sécurité grâce à la présence du shared_ptr, cependant seul le wrapper (la classe Handler) est copié, il n'y a pas de copie en profondeur.