J'ai fait quelques objets à l'aide de la pimpl idiome, mais je ne sais pas si utilisé std::shared_ptr
ou std::unique_ptr
.
Je comprends unique_ptr est plus efficace, mais ce n'est pas tellement un problème pour moi, car ces objets sont relativement lourds, de sorte que les coûts d' std::shared_ptr
sur std::unique_ptr
est relativement mineur.
Je suis actuellement en cours avec std::shared_ptr
seulement en raison de la plus grande flexibilité d'utilisation. Par exemple, à l'aide d'un std::shared_ptr
me permet de stocker ces objets à-dire une table de hachage pour un accès rapide tout en étant capable de retourner les copies de ces objets pour les appelants (comme je le crois, tout itérateurs ou références peuvent rapidement devenir invalide).
Cependant, ces objets ne sont vraiment pas être copié, que les modifications portent sur l'ensemble des copies, donc je me demandais que peut-être l'aide d' std::shared_ptr
et permettant des copies est une sorte d'anti-modèle ou une mauvaise chose.
Toutes les pensées?