J'aimerais savoir ce que l'on considère aujourd'hui comme la meilleure pratique lors du retour d'un pointeur vers un objet polymorphe à partir d'une fonction, par exemple lors de l'utilisation de fabriques. Si je transfère la propriété, dois-je retourner boost::unique_ptr<Interface>
? Que dois-je retourner si je ne transfère pas la propriété (par exemple, en retournant une référence à un membre) ? Existe-t-il une autre méthode, non basée sur le boost, qui est aussi couramment utilisée ? Merci.
EDIT : il est censé être compatible avec C++03, avec la possibilité de passer facilement à 0x.
EDIT2 : Veuillez noter que je pose explicitement la question sur commun des approches, des meilleures pratiques, et pas seulement "une façon de faire". Une solution impliquant une recherche et un remplacement conditionnels de la base de code à l'avenir ne ressemble pas à une bonne pratique, n'est-ce pas ?
EDIT3 : Un autre point à propos de auto_ptr est qu'elle est déprécié, quel qu'il soit, il est donc étrange d'annoncer son utilisation au niveau de l'interface. Ensuite, quelqu'un qui n'est pas au courant mettra le pointeur retourné dans un conteneur STL, et ainsi de suite. Donc si vous connaissez une autre solution plus ou moins courante, vous êtes le bienvenu pour ajouter une réponse.