Mengapakah Perpustakaan Standard C Tidak Menawarkan Versi Bukan Atom `std::shared_ptr`?

Patricia Arquette
Lepaskan: 2024-10-27 00:03:02
asal
158 orang telah melayarinya

Why Doesn't C  's Standard Library Offer a Non-Atomic Version of `std::shared_ptr`?

Setara Bukan Atom std::shared_ptr

Soalan:

Adakah alternatif kepada std::shared_ptr yang tidak mempunyai atomicity yang wujud? Selain itu, mengapakah Pustaka Standard C tidak menyertakan pilihan bukan atom?

Jawapan:

1. Ketersediaan Alternatif Bukan Atom:

Pustaka Standard C tidak menawarkan varian bukan atom std::shared_ptr. Walau bagaimanapun, perpustakaan pihak ketiga mungkin menyediakan pelaksanaan sedemikian. Sebelum pengenalan std::shared_ptr dalam C 11, banyak pembangun mencipta penunjuk pintar dikira rujukan mereka sendiri, yang berpotensi menawarkan pilihan bukan atom.

2. Rasional untuk Atomic std::shared_ptr dalam C 11:

Semasa proses penyeragaman C 11, cadangan untuk memasukkan versi bukan atom std::shared_ptr telah dipertimbangkan dan akhirnya ditolak. Argumen berikut mempengaruhi keputusan ini:

  • Potensi Penyalahgunaan: Penunjuk pintar bukan atom yang ditulis dalam kod berulir boleh memperkenalkan ralat halus dan sukar dinyahpepijat.
  • Ketekalan dan Kebolehoperasian: Mempunyai versi tunggal std::shared_ptr yang konsisten memudahkan kesalingoperasian perpustakaan dan mengurangkan kekeliruan.
  • Kos Prestasi Rendah: Operasi atom mempunyai bukan -sifar overhed, tetapi ia dikurangkan dengan penggunaan semantik bergerak, yang mengelakkan operasi atom semasa operasi biasa seperti pemadaman vektor dan sisipan.
  • Pelaksanaan Tersuai: Pembangun boleh mencipta bukan- petunjuk pintar atom jika mereka mahu.

Cadangan Versi Bukan Atom:

Walaupun penolakan dalam C 11, mungkin terdapat cadangan untuk bukan- versi atom std::shared_ptr diserahkan kepada Boost atau jawatankuasa piawaian. Walau bagaimanapun, cadangan ini tidak mendapat sokongan yang mencukupi untuk dimasukkan ke dalam piawaian rasmi.

Atas ialah kandungan terperinci Mengapakah Perpustakaan Standard C Tidak Menawarkan Versi Bukan Atom `std::shared_ptr`?. 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!