Bonjour,
quelqu'un pourrait m'expliquer en quoi la présence du destructeur même vide est indispensable :
http://stackoverflow.com/questions/3...or-pimpl-idiom
voir la première réponse
Merci!
Version imprimable
Bonjour,
quelqu'un pourrait m'expliquer en quoi la présence du destructeur même vide est indispensable :
http://stackoverflow.com/questions/3...or-pimpl-idiom
voir la première réponse
Merci!
Bonjour,
Si tu ne définis pas de destructeur explicitement, il sera généré automatiquement par le compilateur, la ou MyClass.h est inclus. Hélas, le seul endroit ou la class Pimpl est définis, c'est MyClass.cpp. Il en résulte que l'auto_ptr va tenter de détruire un type non définis. Il me semble que ca compile, mais que la destruction n'est pas effectuée.
Ce qu'il faut retenir, c'est que l'auto_ptr n'est pas adapté au pimpl idiom.
La présence du destructeur est indispensable, mais dans le .cpp et pas inlinée dans le .h.
ok je vois merci
Ou tu inclues le fichier où est la déclaration de pimpl, ce qui fait de lui un type complet et permet de générer un destructeur correct.
Sauf que du coup ce n'est plus un Pimpl...
Ha oui pas faux :p j'ai justre considéré le probème technique en oubliant le contexte ...