Je ne comprends pas exactement ce que tu veux dire...si l'objet est non-modifiable (ce que tu pourrais assurer avec un type de retour du style const & Type) le problème des modifications concurrentes ne se pose pas. Concernant l'instanciation de l'instance, si elle est unique et que c'est une donnée membre de la fabrique comme te le suggère koala01, elle sera créée avant que la fonction puisse être appelée, donc pas de problème de concurrence d'appel à la fonction qui la renvoie (par référence const & IObjet dans ce cas).
La gestion de la durée d'existence est alors simple: tu crée la fabrique dans ta main, par exemple, puis tu la transmets par référence. Fin de main, sortie de scope, nettoyage automatique.
Si tu veux plusieurs instances parce que pramètres de construction différents, qu'est-ce qui t'interdit new + smart-pointer, exactement (pas plus coûteux en mémoire qu'une instance temporaire sur la pile...sauf que la pile est généralement plus petite que la heap) ?
Partager