Heim > Backend-Entwicklung > C++ > Warum hat „std::shared_ptr' keine Spezialisierung für Arrays in C?

Warum hat „std::shared_ptr' keine Spezialisierung für Arrays in C?

DDD
Freigeben: 2024-11-20 16:18:16
Original
859 Leute haben es durchsucht

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

Spezialisierung von std::shared_ptr

In C verfügt std::unique_ptr über eine Vorlagenspezialisierung für die Verarbeitung von Arrays , was in seinem Destruktor entsprechend delete[] aufruft. Für std::shared_ptr gibt es jedoch keine solche Spezialisierung.

Warum die Abwesenheit?

Ursprünglich war das Versehen wahrscheinlich auf Zeitbeschränkungen zurückzuführen, da die LWG (C Ausschuss) hatte viele andere dringende Angelegenheiten. Allerdings spielte auch das Fehlen eines formellen Vorschlags eine Rolle.

Neueste Entwicklungen

Informelle Gespräche haben das Thema wieder in den Vordergrund gerückt und Prototypen wurden umgesetzt. Ein formeller Vorschlag steht jedoch noch aus. Einige LWG-Mitglieder glauben, dass die Array-Unterstützung für std::shared_ptr eine wertvolle Ergänzung wäre.

Aktueller Status

Ab C 14 gibt es keine integrierte Spezialisierung für std::shared_ptr. Um Arrays zu verarbeiten, muss ein benutzerdefinierter Löscher bereitgestellt werden, der delete[] aufruft.

Update

Im Jahr 2014 wurde ein Entwurf einer technischen Spezifikation (TS) zum Hinzufügen eines Arrays vorgeschlagen Unterstützung für std::shared_ptr. Dieser Vorschlag wurde in C 17 umgesetzt.

Das obige ist der detaillierte Inhalt vonWarum hat „std::shared_ptr' keine Spezialisierung für Arrays in C?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage