Sémantique de valeur et bosst::shared_ptr
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:
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.