Rumah >pembangunan bahagian belakang >C++ >Mengapa `std::shared_ptr` Tidak Mempunyai Pengkhususan untuk Jenis Tatasusunan?

Mengapa `std::shared_ptr` Tidak Mempunyai Pengkhususan untuk Jenis Tatasusunan?

Linda Hamilton
Linda Hamiltonasal
2024-11-10 02:47:02423semak imbas

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

Pengkhususan std::shared_ptr: An Enigma

C Standard Library termasuk templat khusus untuk std: :unique_ptr yang sesuai memanggil delete[] dalam pemusnahnya. Walau bagaimanapun, pengkhususan yang serupa tiada untuk std::shared_ptr, yang memerlukan penggunaan pemadam tersuai untuk mengagihkan tatasusunan dengan betul.

Sebab Kekurangan Pengkhususan

Pada mulanya , peninggalan std::shared_ptr pengkhususan nampaknya hanya kelalaian. Walau bagaimanapun, didapati bahawa tiada kata sepakat dalam Kumpulan Kerja Perpustakaan (LWG) mengenai penambahan ciri tersebut. Kebimbangan utama berpunca daripada cadangan untuk memasukkan operasi aritmetik pada shared_ptr, ciri yang boleh dibuang.

Akhirnya, ketiadaan cadangan untuk std::shared_ptr pengkhususan terbukti tegas dalam peninggalannya daripada Piawaian C. Walaupun perbincangan baru-baru ini disambung semula dalam kalangan ahli LWG, tiada cadangan rasmi masih menjadi kenyataan.

Status Semasa

Walaupun kekurangan templat khusus, C 17 memperkenalkan sokongan tatasusunan separa untuk shared_ptr, seperti yang dinyatakan dalam kes ketiga kaedah shared_ptr::shared_ptr(). Kemas kini ini membolehkan penciptaan dan pemusnahan tatasusunan menggunakan shared_ptr, walaupun tanpa kemudahan pengkhususan khusus.

Prospek Masa Hadapan

Draf TS (Spesifikasi Teknikal) N4077 menggariskan laluan berpotensi ke arah sokongan tatasusunan dalam shared_ptr, dan ciri ini akhirnya dimasukkan ke dalam C 17. Pembangunan berterusan daripada C mungkin membawa peningkatan lanjut pada kawasan ini, menawarkan fleksibiliti dan ekspresif tambahan untuk pengurusan tatasusunan menggunakan penunjuk dikongsi.

Atas ialah kandungan terperinci Mengapa `std::shared_ptr` Tidak Mempunyai Pengkhususan untuk Jenis Tatasusunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn