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

Mary-Kate Olsen
Lepaskan: 2024-11-10 04:07:53
asal
477 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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan