Maison >développement back-end >C++ >Pourquoi `std::shared_ptr` n'a-t-il pas de spécialisation pour les tableaux en C ?

Pourquoi `std::shared_ptr` n'a-t-il pas de spécialisation pour les tableaux en C ?

DDD
DDDoriginal
2024-11-20 16:18:16877parcourir

Why Doesn't `std::shared_ptr` Have a Specialization for Arrays in C  ?

Spécialisation de std::shared_ptr

En C, std::unique_ptr a une spécialisation de modèle pour la gestion des tableaux , qui appelle de manière appropriée delete[] dans son destructeur. Cependant, une telle spécialisation n'existe pas pour std::shared_ptr.

Pourquoi l'absence ?

Au départ, l'oubli était probablement dû à des contraintes de temps, car le LWG (C comité) avait de nombreuses autres questions urgentes. Cependant, l'absence de proposition formelle a également joué un rôle.

Développements récents

Des discussions informelles ont ramené la question au premier plan et des prototypes ont été mis en œuvre. Cependant, une proposition formelle est toujours en attente. Certains membres du LWG pensent que la prise en charge des tableaux pour std::shared_ptr serait un ajout précieux.

Statut actuel

À partir de C 14, il n'y a pas de spécialisation intégrée pour std::shared_ptr. Pour gérer les tableaux, il faut fournir un suppresseur personnalisé qui appelle delete[].

Mise à jour

En 2014, un projet de spécification technique (TS) a été proposé pour ajouter un tableau prise en charge de std :: shared_ptr. Cette proposition a été mise en œuvre dans C 17.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn