Maison >développement back-end >C++ >Comment `std::shared_ptr` maintient-il la fonctionnalité du destructeur malgré l'effacement de type ?
Effacement de type et fonctionnalité de std::shared_ptr
Lorsque vous travaillez avec la classe std::shared_ptr, cela est couramment observé que std::shared_ptr
Effacement de type et invocation de destructeur
std::shared_ptr utilise l'effacement de type en stockant en interne une fonction de suppression qui est invoquée lorsque le pointeur est détruit. Cette fonction est responsable de la désallocation de la mémoire pointée par le pointeur partagé. Il est important de noter que la fonction de suppression est spécifique à un type, ce qui signifie qu'elle sait comment détruire les objets d'un type spécifique.
std::shared_ptr
Lancement d'un std::shared_ptr
Conséquence de l'invocation du destructeur
Quand un std : :shared_ptr
Comportement garanti par la norme
Bien que le comportement actuel de std::shared_ptr à cet égard ne soit pas explicitement indiqué par le C, il est largement considéré comme un effet secondaire de l’implémentation de l’effacement de type utilisée par les compilateurs les plus courants. Cependant, les modifications futures apportées à l'implémentation interne de std::shared_ptr pourraient potentiellement casser le code qui repose sur ce comportement. Par conséquent, il n'est pas recommandé de s'appuyer sur la fonctionnalité de std::shared_ptr
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!