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
Mary-Kate Olsenasal
2024-10-27 16:28:01607semak imbas

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:
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