Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa C Tidak Mempunyai `std::shared_ptr` Bukan Atom?

Mengapa C Tidak Mempunyai `std::shared_ptr` Bukan Atom?

Linda Hamilton
Linda Hamiltonasal
2024-11-01 01:21:02785semak imbas

 Why Doesn't C   Have a Non-Atomic `std::shared_ptr`?

Setara Bukan Atom std::shared_ptr dan Mengapa Ia Tiada dalam

std::shared_ptr telah mendapat perhatian sebagai penunjuk pintar pemilikan bersama yang bertambah dan berkurang secara atom. Walau bagaimanapun, timbul persoalan sama ada kesetaraan bukan atom wujud.

1. Pilihan Alternatif Bukan Atom

Walaupun pemeriksaan menyeluruh terhadap pengepala, tiada setara bukan atom std::shared_ptr mudah diakses. Walau bagaimanapun, terdapat penyelesaian di luar standard.

2. Mengapa Non-Atomic std::shared_ptr Tidak Termasuk dalam C 11

Ketiadaan versi bukan atom dalam C 11 berpunca daripada perbincangan yang diadakan semasa mesyuarat Rapperswil pada tahun 2010.

Sebab Menentang Pilihan Bukan Atom:

  • Isu berpotensi apabila kod ditulis tanpa atomicity kemudiannya digunakan dengan benang, yang membawa kepada cabaran penyahpepijatan.
  • Kelebihan mempunyai shared_ptr universal dengan gelagat yang konsisten merentas perpustakaan.
  • Impak prestasi minimum atomicity, yang dikurangkan oleh pembinaan pergerakan yang cekap dan operasi penugasan alih.
  • Ketersediaan perkongsian bukan atom tersuai petunjuk jika diperlukan.

Berdasarkan hujah ini, Kumpulan Kerja Bahasa (LWG) memutuskan untuk tidak memperkenalkan varian bukan atom shared_ptr dalam C 11.

Atas ialah kandungan terperinci Mengapa C Tidak Mempunyai `std::shared_ptr` Bukan Atom?. 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