std::unique_ptr c'est "juste" l'implémentation de l'idée du RAII. Si tu t'en passes tu te retrouveras de toute façon à recréer ces capsules.
J'ai pas testé depuis longtemps, mais il y a normalement des outils qui sont là pour rendre ces erreurs lisibles.
L'objectif de std::unique_ptr c'est d'offrir un élément permettant de clairement définir et identifier la responsabilité de la libération d'une ressource. Qu'est ce qu'un "delete stupide" ? Avec std::unique_ptr tu n'as même plus besoin de te préoccuper du delete (c'est le but du RAII).
Une partie des bibliothèques n'ont pas à se préoccuper de ça : elles n'ont pas de pointeur dans leur interface. Une partie de celle qui reste travaille avec des pointeurs nues pour signaler qu'elles prennent la responsabilité des données, l'absence de prises en compte des pointeurs intelligents n'est pas un problème (si la bibliothèque est destiné à avoir la responsabilité des données, alors le choix d'utiliser un pointeurs intelligent simultanément est critiquable). On est loin de 0 ...
Pour la citation que j'ai en signature, le seul contexte où je l'ai vue c'est en introduction d'un chapitre du livre de David Abrahams sur boost::mpl, et je t'assure que c'était pas ironique.
Partager