Rumah > pembangunan bahagian belakang > C++ > Adakah C Menyediakan Setara Bukan Atom `std::shared_ptr`?

Adakah C Menyediakan Setara Bukan Atom `std::shared_ptr`?

Mary-Kate Olsen
Lepaskan: 2024-10-27 16:28:01
asal
651 orang telah melayarinya

Does C   Provide a Non-Atomic Equivalent of `std::shared_ptr`?

Tiada Versi Atom std::shared_ptr

Soalan: Adakah persamaan bukan atom std:: shared_ptr wujud di luar perpustakaan standard? Mengapakah versi bukan atom tidak disertakan dalam C 11?

Jawapan:

1. Non-Atomic Equivalent

std::shared_ptr, tidak seperti penunjuk pintar lain dalam pustaka standard, adalah atom. Walaupun mungkin terdapat alternatif pihak ketiga, piawaian itu sendiri tidak menyediakan versi bukan atom.

2. Pengecualian daripada C 11

Pemasukan std::shared_ptr bukan atom telah dibahaskan pada mesyuarat C 11 Rapperswil. Hujah menentang kemasukannya termasuk:

  • Potensi kod menggunakan versi bukan atom untuk digunakan kemudian dalam kod berulir, yang membawa kepada isu yang tidak dapat dikesan.
  • Faedah mempunyai "universal " shared_ptr, tanpa mengira ciri yang digunakan.
  • Impak prestasi minimum atomicity, dikurangkan oleh pembinaan dan penugasan pergerakan.
  • Keupayaan untuk pengguna melaksanakan penunjuk pintar dikira rujukan bukan atom mereka sendiri jika perlu.

Selepas pertimbangan, LWG akhirnya menolak cadangan untuk std::shared_ptr bukan atom, dengan alasan bahawa ia tidak mempunyai konsensus yang jelas dan faedahnya tidak mengatasi kelemahan.

Atas ialah kandungan terperinci Adakah C Menyediakan Setara 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