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