Citation Envoyé par Freem Voir le message
_ code plus chiant à écrire
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.
Citation Envoyé par Freem Voir le message
_ erreurs de compilations encore plus longues à lire (un template de plus quoi)
J'ai pas testé depuis longtemps, mais il y a normalement des outils qui sont là pour rendre ces erreurs lisibles.
Citation Envoyé par Freem Voir le message
_ pas plus de protection que ça contre les delete stupides, puisqu'il faut utiliser get() qui file un pointeur brut si on veut permettre à quelqu'un d'autre (méthode, fonction, peu importe) de modifier le contenu.
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).
Citation Envoyé par Freem Voir le message
_ 0 intégration dans d'autres lib
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.