Non, un GC gère la libération lui aussi. Il doit détecter quand un objet n'est plus utilisé et le libérer. (éventuellement avec un décalage) Par contre, pour faire cela il a souvent besoin de la coopération du code responsable de l'allocation (et des copies, ...) tout comme un smart pointer.
Le constructeur du smart pointer peut très bien être vu comme l'allocation de la ressource, c'est un moyen de signaler qu'un pointeur doit être gérer et un moyen d'être tenu au courant des nouvelle références sur ce pointeur.
Il est tout à fait possible même si c'est stupide d'implémenter les smart pointer avec n'importe quel algo de GC.
[^] # Re: templates variadiques
Posté par beagf . En réponse à la dépêche Le standard C++0x a enfin été voté. Évalué à 3.
Non, un GC gère la libération lui aussi. Il doit détecter quand un objet n'est plus utilisé et le libérer. (éventuellement avec un décalage) Par contre, pour faire cela il a souvent besoin de la coopération du code responsable de l'allocation (et des copies, ...) tout comme un smart pointer.
Le constructeur du smart pointer peut très bien être vu comme l'allocation de la ressource, c'est un moyen de signaler qu'un pointeur doit être gérer et un moyen d'être tenu au courant des nouvelle références sur ce pointeur.
Il est tout à fait possible même si c'est stupide d'implémenter les smart pointer avec n'importe quel algo de GC.