Maison > développement back-end > C++ > le corps du texte

Pourquoi n'y a-t-il pas de `std::shared_ptr` dans la bibliothèque standard C ?

Mary-Kate Olsen
Libérer: 2024-11-10 04:07:53
original
484 Les gens l'ont consulté

Why isn't there a `std::shared_ptr` in the C   standard library?

Une plongée plus approfondie dans l'absence de std::shared_ptr

Dans la bibliothèque standard C, il existe un version spécialisée de std::unique_ptr pour les tableaux, std::unique_ptr, qui appelle correctement delete[] dans son destructeur. Cependant, une telle spécialisation fait défaut pour std::shared_ptr, ce qui nécessite l'utilisation de suppresseurs personnalisés comme celui présenté dans la question.

Justification du manque de spécialisation

L'absence de std::shared_ptr découle d'une combinaison de facteurs :

  • Discussion du LWG : Le groupe de travail sur les bibliothèques (LWG) a examiné l'idée mais l'a finalement rejetée en raison de la controverse entourant une fonctionnalité supplémentaire proposée pour shared_ptr< T[]>.
  • Absence de proposition formelle : Malgré des discussions informelles, aucune proposition officielle n'a jamais été été soumis au LWG pour la création de std::shared_ptr.

Statut actuel et perspectives d'avenir

Malgré l'hésitation historique , les récentes discussions ont ravivé l’intérêt des membres du LWG. Bien qu'un prototype ait été mis en œuvre, une proposition formelle reste en attente. La faisabilité et l'adoption finale de std::shared_ptr reste incertain.

Développements à venir

Un projet de TS (spécification technique) open-std.org propose la prise en charge des tableaux pour std::shared_ptr. Ce TS, s'il est adopté, introduirait std::shared_ptr dans le cadre de la norme C.

Mise à jour pour C 17

Le projet de TS a depuis été incorporé dans C 17, fournissant un support officiel pour std::shared_ptr. Reportez-vous au cas 3 de shared_ptr::shared_ptr() pour plus de détails.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal