J'ai une API C qui gère la création et la destruction d'objets, elle fournit: createObject(...)
et destroy(...)
. Je veux l'intégrer dans des mécanismes de construction/destruction plus modernes et les utiliser avec des pointeurs intelligents. J'ai peur qu'à un certain moment j'oublie de détruire l'objet, ou une exception se produira.Habillage C créer et détruire des fonctions à l'aide d'un pointeur intelligent
Je suis conscient de la fonction de suppression personnalisée pour shared_ptr
, mais je ne peux pas appeler explicitement new
, car la fonction createOjbect
gère l'initialisation. Puis-je utiliser des pointeurs intelligents STL dans cette situation? Dois-je, à partir de zéro, implémenter une classe avec l'initialisation dans le constructeur, la destruction dans le destructeur et le comptage des références dans cette situation?
Pourquoi avez-vous besoin ref counter dans votre classe? Appelez simplement createObject dans le constructeur, destroy dans destructor et fournissez une fonction d'usine statique qui retournera un pointeur intelligent vers votre classe. Pointeur intelligent gérera la partie refcounter.Quand votre classe est finalement détruite - elle appellera automatiquement destroy –
Que retourne createObject? Qu'est-ce que ça prend? Selon votre réponse, il peut y avoir des améliorations. – Yakk