Rumah > pembangunan bahagian belakang > C++ > Adakah Pelaksanaan Copy-on-Write bagi std::string Sah dalam C 11?

Adakah Pelaksanaan Copy-on-Write bagi std::string Sah dalam C 11?

Susan Sarandon
Lepaskan: 2024-12-25 14:32:11
asal
348 orang telah melayarinya

Is Copy-on-Write Implementation of std::string Legal in C  11?

Legaliti COW std::string Pelaksanaan dalam C 11

Dalam versi terdahulu C , copy-on-write (COW) ialah strategi pelaksanaan yang berdaya maju untuk std::string. Walau bagaimanapun, kebimbangan telah dibangkitkan tentang kesahihannya dalam C 11. Artikel ini mengkaji kesahihan pelaksanaan std::string berasaskan COW dalam C 11.

Soalan: Adakah C 11 secara jelas melarang std::rentetan berasaskan LEMBU pelaksanaan?

Jawapan: Tidak, C 11 tidak menyatakan secara jelas bahawa pelaksanaan berasaskan LEMBU adalah dilarang.

Soalan: Jika tidak, bagaimanakah adakah sekatan ini tersirat?

Jawapan: Sekatan itu timbul daripada keperluan baharu dalam C 11 berkenaan lelaran dan pembatalan rujukan. Menurut seksyen 21.4.1 p6 standard, pembatalan hanya dibenarkan dalam kes tertentu:

  • Meluluskan sebagai hujah kepada fungsi perpustakaan standard tertentu yang menerima rujukan rentetan_asas bukan const.
  • Memanggil fungsi bukan ahli const, tidak termasuk operator[], di, depan, belakang, mula, rmula, tamat dan rend.

Dalam pelaksanaan rentetan COW, memanggil pengendali bukan const[] akan memerlukan salinan dan rujukan tidak sah. Walau bagaimanapun, perenggan yang disebutkan di atas melarang ini. Oleh itu, pelaksanaan COW std::string tidak lagi dibenarkan dalam C 11.

Atas ialah kandungan terperinci Adakah Pelaksanaan Copy-on-Write bagi std::string Sah dalam C 11?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan