Maison >développement back-end >C++ >Pourquoi `std::shared_ptr` n'a-t-il pas de spécialisation pour les types de tableaux ?
Spécialisation de std::shared_ptr
La bibliothèque standard C comprend un modèle spécialisé pour std : :unique_ptr qui appelle de manière appropriée delete[] dans son destructeur. Cependant, une spécialisation similaire est absente pour std::shared_ptr, ce qui nécessite l'utilisation d'un suppresseur personnalisé pour désallouer correctement les tableaux.
Raison du manque de spécialisation
Initialement , l'omission de std::shared_ptr
En fin de compte, l'absence de proposition pour std::shared_ptr
Statut actuel
Malgré l'absence de modèle spécialisé, C 17 a introduit la prise en charge partielle des tableaux. pour shared_ptr, comme spécifié dans le troisième cas de la méthode shared_ptr::shared_ptr(). Cette mise à jour permet la création et la destruction de tableaux à l'aide de shared_ptr, mais sans la commodité d'une spécialisation dédiée.
Perspectives futures
Le projet de TS (Spécification technique) N4077 a décrit une voie potentielle vers la prise en charge des tableaux dans shared_ptr, et cette fonctionnalité a finalement été incorporée dans C 17. Le développement continu de C pourrait apporter de nouvelles améliorations à cette fonctionnalité. zone, offrant une flexibilité et une expressivité supplémentaires pour la gestion des tableaux à l'aide de pointeurs partagés.
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!