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
245 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!

sumber:php.cn
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