Rumah > pembangunan bahagian belakang > C++ > Mengapa Tiada Pengkhususan std::shared_ptr dalam C ?

Mengapa Tiada Pengkhususan std::shared_ptr dalam C ?

DDD
Lepaskan: 2024-11-10 06:48:03
asal
1026 orang telah melayarinya

Why Isn't There a std::shared_ptr Specialization in C  ?

std::shared_ptr Pengkhususan

Pustaka standard C mengandungi pengkhususan std::unique_ptr untuk tatasusunan, yang memanggil delete[] dengan betul daripada pemusnahnya. Walau bagaimanapun, pengkhususan yang serupa tidak terdapat untuk std::shared_ptr. Tingkah laku ini memerlukan pengguna untuk menyediakan pemadam secara manual yang secara eksplisit memanggil padam[].

Adakah peninggalan ini suatu kesilapan atau disengajakan?

Sebab Ketidakhadiran

Kumpulan Kerja Perpustakaan C (LWG) telah mempertimbangkan kemungkinan std::shared_ptr pengkhususan, tetapi kontroversi mengenai ciri tambahan menghalang kemasukannya.

Secara khusus, operasi aritmetik pada std::shared_ptr dicadangkan tetapi mendapat tentangan. Akhirnya, kekurangan cadangan rasmi dan keutamaan membawa kepada pengecualian ciri daripada standard.

Perkembangan Terkini

Secara tidak rasmi, topik itu sekali lagi mendapat tarikan dalam LWG, dan prototaip telah dibangunkan. Walaupun terdapat potensi untuk ciri ini menjadi alat yang berharga, kemasukannya dalam standard masih tidak pasti.

Status Semasa

Setakat C 11, std:: shared_ptr pengkhususan belum diseragamkan. Walau bagaimanapun, terdapat draf cadangan TS berterusan (N4077) yang memperkenalkan sokongan tatasusunan untuk std::shared_ptr.

Kemas kini (2017)

Piawaian C 17 termasuk sokongan untuk tatasusunan dalam std::shared_ptr (kes 3 shared_ptr::shared_ptr()).

Atas ialah kandungan terperinci Mengapa Tiada Pengkhususan std::shared_ptr dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan