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

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

Barbara Streisand
Lepaskan: 2024-12-20 00:43:09
asal
976 orang telah melayarinya

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

Legaliti Copy-on-Write (COW) std::string Pelaksanaan dalam C 11

Walaupun mungkin telah dipercayai bahawa COW bukanlah teknik yang boleh dilaksanakan untuk melaksanakan std::string yang mematuhi dalam C 11, perbincangan baru-baru ini telah dibangkitkan ketidakpastian. Yang berikut meneroka kesahihan andaian ini berdasarkan standard baharu.

Larangan Pelaksanaan std::string Berasaskan LEMBU dalam C 11

C 11 secara jelas melarang LEMBU -pelaksanaan berasaskan std::string. Had ini dinyatakan dalam bahagian 21.4.1 p6 piawai, yang membenarkan pembatalan lelaran/rujukan hanya dalam keadaan tertentu:

  • Sebagai hujah kepada fungsi perpustakaan standard yang menerima rujukan kepada bukan -const basic_string.
  • Memanggil fungsi bukan ahli const, tidak termasuk operator[], di, depan, kembali, mulakan, rmulakan, tamatkan dan pecahkan.

Dalam rentetan COW, menggunakan pengendali bukan const[] memerlukan mencipta salinan (rujukan yang tidak sah), yang dilarang oleh perenggan yang disebutkan di atas. Akibatnya, rentetan LEMBU dilarang dalam C 11 kerana kekangan ini.

Atas ialah kandungan terperinci Adakah Pelaksanaan Copy-on-Write 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan