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

Pourquoi `std::shared_ptr` n'a-t-il pas de spécialisation pour la suppression de tableaux ?

Linda Hamilton
Libérer: 2024-11-12 21:22:02
original
496 Les gens l'ont consulté

Why Doesn't `std::shared_ptr` Have a Specialization for Array Deletion?

Pourquoi std::shared_ptr N'a pas été spécialisé

Contrairement à std::unique_ptr, qui invoque de manière appropriée delete[] dans son destructeur pour les tableaux, std::shared_ptr n'a pas de spécialisation comparable. Par conséquent, les utilisateurs doivent fournir manuellement un suppresseur qui désalloue correctement les tableaux.

Raisons de la surveillance

Bien que l'absence d'un std::shared_ptr la spécialisation peut sembler être un oubli, elle résulte de plusieurs facteurs :

  • Absence de controverse : Contrairement à std::copy_if, qui a suscité la controverse, std::shared_ptr n'a pas généré de débat significatif.
  • Opportunité manquée : Malgré les discussions au sein du comité C, aucune proposition formelle n'a été soumise pour répondre au besoin de prise en charge des baies dans std : shared_ptr.

Développements récents

Un regain d'intérêt pour la prise en charge des tableaux pour std::shared_ptr est apparu, conduisant à la création d'un projet de spécification technique (TS) . Ce TS (n4077.html) propose un mécanisme pour étendre les fonctionnalités de shared_ptr aux tableaux.

Statut actuel et perspectives d'avenir

Le projet de TS a été approuvé dans le cadre de C 17, fournissant un support officiel pour la gestion des tableaux dans std::shared_ptr. Cette amélioration des fonctionnalités permet une gestion transparente des baies et simplifie les tâches d'allocation de mémoire pour les programmeurs.

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