Mengapakah Piawaian C Tidak Termasuk `std::shared_ptr` Bukan Atom?

Mary-Kate Olsen
Lepaskan: 2024-10-30 02:03:28
asal
780 orang telah melayarinya

Why Doesn't the C   Standard Include a Non-Atomic `std::shared_ptr`?

Penunjuk Pintar Bukan Atom: Meneroka Ketiadaan dalam Piawaian C

Dalam bidang pengurusan memori C, std::shared_ptr berdiri sebagai penunjuk pintar yang luar biasa kerana operasi atomnya. Ini menimbulkan persoalan: mengapa tiada rakan bukan atom dalam perpustakaan memori standard?

1. Alternatif Bukan Atom kepada std::shared_ptr

Walaupun std::shared_ptr menawarkan gelagat atom, sesetengah senario mungkin tidak menjamin overhed sedemikian. Untuk menangani perkara ini, perpustakaan luaran telah muncul, menyediakan petunjuk pintar yang dikira rujukan bukan atom. Walau bagaimanapun, perpustakaan memori standard itu sendiri tidak mempunyai tawaran sedemikian.

2. Ketiadaan dalam C 11: Alasan dan Perbahasan

Walaupun utiliti yang dilihat, cadangan untuk versi bukan atom std::shared_ptr telah ditolak semasa proses penyeragaman C 11. Beberapa hujah mendorong keputusan ini:

  • Potensi penyalahgunaan: Petunjuk pintar bukan atom boleh digunakan secara tidak sengaja dalam konteks berbilang benang, yang membawa kepada ralat yang sukar dinyahpepijat.
  • Ketekalan dan kebolehoperasian: Mengekalkan satu shared_ptr "universal" dengan kefungsian atom yang dibenarkan untuk kesalingoperasian yang lebih lancar antara perpustakaan C, termasuk perpustakaan pihak ketiga.
  • Pertimbangan prestasi:
  • Kesimpulan
Ketiadaan std bukan atom::shared_ptr dalam piawaian C adalah hasil keputusan yang disengajakan berdasarkan kebimbangan tentang kemungkinan penyalahgunaan, konsistensi, prestasi dan fleksibiliti penyesuaian. Walaupun perpustakaan luaran boleh menyediakan alternatif sedemikian, piawaian itu sendiri telah mengutamakan faedah penunjuk pintar atom yang universal untuk pengurusan ingatan.

Atas ialah kandungan terperinci Mengapakah Piawaian C Tidak Termasuk `std::shared_ptr` Bukan Atom?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!