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

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