Heim > Backend-Entwicklung > C++ > Warum hat „std::shared_ptr' keine Spezialisierung für das Löschen von Arrays?

Warum hat „std::shared_ptr' keine Spezialisierung für das Löschen von Arrays?

Linda Hamilton
Freigeben: 2024-11-12 21:22:02
Original
495 Leute haben es durchsucht

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

Warum std::shared_ptr Wurde nicht spezialisiert

Im Gegensatz zu std::unique_ptr, das in seinem Destruktor für Arrays entsprechend delete[] aufruft, fehlt std::shared_ptr eine vergleichbare Spezialisierung. Folglich müssen Benutzer manuell einen Löscher bereitstellen, der Arrays korrekt freigibt.

Gründe für das Versehen

Während das Fehlen eines std::shared_ptr Die Spezialisierung scheint ein Versehen zu sein, sie ist auf mehrere Faktoren zurückzuführen:

  • Mangel an Kontroversen: Im Gegensatz zu std::copy_if, das Kontroversen auslöste, std::shared_ptrs Abwesenheit löste keine nennenswerte Debatte aus.
  • Verpasst Gelegenheit: Trotz Diskussionen innerhalb des C-Komitees wurde kein formeller Vorschlag eingereicht, um den Bedarf an Array-Unterstützung in std::shared_ptr zu adressieren.

Neueste Entwicklungen

Erneutes Interesse an der Array-Unterstützung für std::shared_ptr ist geweckt, was zur Erstellung eines Entwurfs einer technischen Spezifikation (TS) führte. Dieser TS (n4077.html) schlägt einen Mechanismus vor, um die Funktionalität von shared_ptr auf Arrays zu erweitern.

Aktueller Status und Zukunftsaussichten

Der TS-Entwurf wurde als Teil von C genehmigt 17, bietet offizielle Unterstützung für die Array-Verarbeitung in std::shared_ptr. Diese Funktionserweiterung ermöglicht eine nahtlose Array-Verwaltung und vereinfacht Speicherzuweisungsaufgaben für Programmierer.

Das obige ist der detaillierte Inhalt vonWarum hat „std::shared_ptr' keine Spezialisierung für das Löschen von Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage