Spezialisierung von std::shared_ptr
Die C-Standardbibliothek enthält eine spezielle Vorlage für std: :unique_ptr, der delete[] in seinem Destruktor entsprechend aufruft. Eine ähnliche Spezialisierung fehlt jedoch für std::shared_ptr, was die Verwendung eines benutzerdefinierten Löschers erfordert, um die Zuordnung von Arrays korrekt aufzuheben.
Grund für die fehlende Spezialisierung
Anfangs , das Weglassen von std::shared_ptr
Letztendlich war das Fehlen eines Vorschlags für std::shared_ptr
Aktueller Status
Trotz des Fehlens einer speziellen Vorlage führte C 17 eine teilweise Array-Unterstützung ein für shared_ptr, wie im dritten Fall der Methode shared_ptr::shared_ptr() angegeben. Dieses Update ermöglicht die Erstellung und Zerstörung von Arrays mithilfe von shared_ptr, allerdings ohne den Komfort einer speziellen Spezialisierung.
Zukunftsaussichten
Der Entwurf TS (Technische Spezifikation) N4077 skizzierte einen möglichen Weg zur Array-Unterstützung in shared_ptr, und diese Funktion wurde schließlich in C 17 integriert. Die Weiterentwicklung von C könnte weitere Verbesserungen in diesem Bereich mit sich bringen und zusätzliche Flexibilität und Ausdruckskraft für die Array-Verwaltung mithilfe gemeinsam genutzter Zeiger bieten.
Das obige ist der detaillierte Inhalt vonWarum hat „std::shared_ptr' keine Spezialisierung für Array-Typen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!