Legaliti Pelaksanaan Copy-on-Write (COW) dalam std::string C 11
Sudah menjadi kepercayaan umum bahawa Copy-on-write (COW) bukanlah cara yang dibenarkan untuk merealisasikan pelaksanaan yang mematuhi std::string dalam C 11. Walau bagaimanapun, perbincangan baru-baru ini telah mencabar tanggapan ini.
Adakah C 11 Melarang Pelaksanaan std::string COW?
Ya, pelaksanaan std berasaskan COW: :rentetan adalah dilarang dalam C 11.
Standard Ketetapan
Sekatan dinyatakan secara jelas dalam piawaian C 11 (bahagian 21.4.1 p6):
"Pembatalan iterator/rujukan hanya dibenarkan untuk:
Implikasi untuk LEMBU
Untuk rentetan LEMBU, memanggil bukan const operator[] akan memerlukan membuat salinan (yang akan membatalkan rujukan). Walau bagaimanapun, tindakan ini dilarang oleh standard, menyebabkan pelaksanaan COW std::string tidak mematuhi C 11.
Atas ialah kandungan terperinci Adakah Piawaian C 11 Melarang Pelaksanaan Salinan-Tulis untuk `std::string`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!