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

Mengapa `std::shared_ptr` Tidak Mempunyai Pengkhususan untuk Tatasusunan dalam C ?

DDD
DDDasal
2024-11-20 16:18:16794semak imbas

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

Pengkhususan std::shared_ptr

Dalam C , std::unique_ptr mempunyai pengkhususan templat untuk mengendalikan tatasusunan , yang sesuai memanggil delete[] dalam pemusnahnya. Walau bagaimanapun, tiada pengkhususan sedemikian wujud untuk std::shared_ptr.

Mengapa Ketiadaan?

Pada mulanya, pengawasan itu mungkin disebabkan oleh kekangan masa, seperti LWG (C jawatankuasa) mempunyai banyak perkara penting yang lain. Walau bagaimanapun, kekurangan cadangan rasmi juga memainkan peranan.

Perkembangan Terkini

Perbincangan tidak rasmi telah membawa isu itu kembali ke hadapan, dan prototaip telah dilaksanakan. Bagaimanapun, cadangan rasmi masih belum selesai. Sesetengah ahli LWG percaya bahawa sokongan tatasusunan untuk std::shared_ptr akan menjadi tambahan yang berharga.

Status Semasa

Setakat C 14, tiada pengkhususan terbina dalam untuk std::shared_ptr. Untuk mengendalikan tatasusunan, seseorang mesti menyediakan pemadam tersuai yang memanggil padam[].

Kemas kini

Pada tahun 2014, draf Spesifikasi Teknikal (TS) telah dicadangkan untuk menambah tatasusunan sokongan kepada std::shared_ptr. Cadangan ini telah dilaksanakan dalam C 17.

Atas ialah kandungan terperinci Mengapa `std::shared_ptr` Tidak Mempunyai Pengkhususan untuk Tatasusunan dalam C ?. 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