Rumah > pembangunan bahagian belakang > C++ > Mengapa tiada `std::shared_ptr` dalam pustaka standard C?

Mengapa tiada `std::shared_ptr` dalam pustaka standard C?

Mary-Kate Olsen
Lepaskan: 2024-11-10 04:07:53
asal
573 orang telah melayarinya

Why isn't there a `std::shared_ptr` in the C   standard library?

Selam Lebih Dalam ke dalam Ketiadaan std::shared_ptr

Dalam perpustakaan standard C, terdapat versi khusus std::unique_ptr untuk tatasusunan, std::unique_ptr, yang memanggil padam[] dengan betul dalam pemusnahnya. Walau bagaimanapun, pengkhususan sedemikian kurang untuk std::shared_ptr, yang memerlukan penggunaan pemadam tersuai seperti yang dipamerkan dalam soalan.

Rasional Kekurangan Pengkhususan

Ketiadaan std::shared_ptr berpunca daripada gabungan faktor:

  • Perbincangan LWG: Kumpulan Kerja Perpustakaan (LWG) mempertimbangkan idea itu tetapi akhirnya menolaknya kerana kontroversi mengenai ciri tambahan yang dicadangkan untuk shared_ptr< T[]>.
  • Kurang Formal Cadangan: Walaupun perbincangan tidak formal, tiada cadangan rasmi pernah dikemukakan kepada LWG untuk penciptaan std::shared_ptr.

Status Semasa dan Masa Depan Prospek

Walaupun terdapat keraguan sejarah, perbincangan baru-baru ini telah menghidupkan semula minat di kalangan ahli LWG. Walaupun prototaip telah dilaksanakan, cadangan rasmi masih belum selesai. Kebolehlaksanaan dan penerimaan muktamad std::shared_ptr masih tidak pasti.

Perkembangan Akan Datang

Draf TS (Spesifikasi Teknikal) open-std.org mencadangkan sokongan tatasusunan untuk std::shared_ptr. TS ini, jika diterima pakai, akan memperkenalkan std::shared_ptr sebagai sebahagian daripada standard C.

Kemas kini untuk C 17

Draf TS sejak itu telah dimasukkan ke dalam C 17, memberikan sokongan rasmi untuk std::shared_ptr. Rujuk kes 3 shared_ptr::shared_ptr() untuk butiran.

Atas ialah kandungan terperinci Mengapa tiada `std::shared_ptr` dalam pustaka standard 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