Mengapa tiada setara bukan atom std::shared_ptr dalam perpustakaan standard C?

Susan Sarandon
Lepaskan: 2024-11-03 03:06:29
asal
744 orang telah melayarinya

Why is there no non-atomic equivalent of std::shared_ptr in the C   standard library?

Memeriksa Kes untuk Setara Bukan Atom std::shared_ptr

Pengenalan

Petunjuk pintar dalam C 11 menawarkan mekanisme yang berkuasa untuk pengurusan memori, dengan std::shared_ptr menjadi pilihan utama untuk pemilikan bersama. Walau bagaimanapun, sifat atomnya memperkenalkan overhed yang mungkin tidak perlu atau tidak diingini dalam senario tertentu. Artikel ini meneroka ketiadaan setara bukan atom std::shared_ptr dalam pustaka standard dan mengkaji kemungkinan sebab di sebalik keputusan ini.

Pencarian untuk Alternatif Bukan Atom

Bertentangan dengan premis soalan, std::shared_ptr bukanlah satu-satunya penunjuk pintar dalam untuk menampilkan atomicity. std::weak_ptr juga bersifat atom, mempersembahkan penyelesaian yang berpotensi untuk senario yang memerlukan rujukan bukan milik. Namun begitu, minat terhadap alternatif shared_ptr bukan atom yang berdedikasi mencadangkan jurang yang dilihat dalam perpustakaan.

Sebab Pengecualian

Walaupun potensi manfaat bukan- atomic shared_ptr, jawatankuasa piawaian C memilih untuk tidak memasukkan satu dalam C 11. Keputusan itu berpunca daripada perdebatan hangat pada mesyuarat Rapperswil 2010. Hujah menentang kemasukannya termasuk:

  • Potensi untuk Penggunaan Berulir Masa Depan: Share_ptrs bukan atom secara tidak sengaja boleh digunakan dalam konteks berbilang benang, yang membawa kepada ralat yang halus dan sukar untuk dikesan.
  • Ketekalan dalam Reka Bentuk Penunjuk Pintar: Shared_ptr bersatu yang mengendalikan pengiraan rujukan secara seragam merentas semua kes penggunaan memudahkan kesalingoperasian dan penggunaan perpustakaan.
  • Kos Prestasi Minimum: Operasi atom dalam shared_ptr tidak terlalu mahal, terutamanya dengan mengambil kira operasi bergerak, yang memintas tindakan atom.
  • Pilihan Pengguna: Pembangun bebas untuk mencipta pintar dikira rujukan bukan atom mereka sendiri. penunjuk jika dikehendaki.

Kesimpulan

Ketiadaan setara bukan atom bagi std::shared_ptr dalam piawaian C 11 adalah pelbagai rupa. Walaupun ia menjejaskan prinsip "bayar untuk apa yang anda gunakan", ia mengutamakan konsistensi, mengelakkan ralat dan overhed prestasi minimum. Keputusan itu mencerminkan kompromi antara menyediakan fleksibiliti optimum dan memastikan keteguhan kod.

Atas ialah kandungan terperinci Mengapa tiada setara bukan atom std::shared_ptr dalam perpustakaan 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!