Rumah > pembangunan bahagian belakang > C++ > Mengapakah Perpustakaan Standard C Tidak Menawarkan Versi Bukan Atom `std::shared_ptr`?

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

Patricia Arquette
Lepaskan: 2024-10-27 00:03:02
asal
295 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!

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