Adakah Pengaturcaraan Meta Stateful Sah dalam C 17?

DDD
Lepaskan: 2024-11-18 21:54:03
asal
201 orang telah melayarinya

Is Stateful Metaprogramming Legal in C  17?

Adakah Masa Depan Metaprogramming Stateful Tidak Pasti?

Dalam bidang pengaturcaraan meta, timbul teknik menarik pembilang constexpr, yang dikenali sebagai metaprogramming stateful. Teknik rumit ini telah mencetuskan kekaguman dan kegelisahan di kalangan pembangun. Persoalannya masih berlarutan: dengan kemunculan C 17, adakah kesahihannya telah dikaji semula?

Metaprogramming Berstatus dalam C 14

Seperti yang ditunjukkan oleh coretan kod yang disediakan, pengaturcaraan meta stateful dalam C 14 memanfaatkan pengisytiharan rakan, ADL dan constexpr untuk mencipta pembilang yang mengekalkan keadaannya merentas seruan. Walaupun sifatnya yang kelihatan aneh, teknik ini sah di bawah C 14.

The Dark Cloud: CWG Issue 2118

Walau bagaimanapun, amalan ini telah mendapat perhatian daripada piawaian C jawatankuasa, khususnya melalui keluaran aktif CWG keluaran 2118. Jawatankuasa mengiktiraf kekaburan teknik ini dan menyokong persempadanan semula sebagai tidak berbentuk.

Pendirian Senyap C 17

Walaupun CWG bimbang, C 17 tidak secara jelas menangani isu ini. Ini membayangkan bahawa pengaturcaraan meta stateful kekal sah dalam C 17, walaupun dengan amaran bahawa nasibnya mungkin akan diubah pada masa hadapan.

Implikasi Retroaktif

Sekiranya mekanisme larangan dibuat direka, ada kemungkinan bahawa pengaturcaraan meta stateful mungkin secara retroaktif dianggap tidak terbentuk. Ini akan menjadikan coretan kod yang dibentangkan dalam soalan tidak sah, menimbulkan potensi risiko untuk pangkalan kod sedia ada.

Kesimpulan

Masa depan pengaturcaraan meta stateful masih tidak menentu. Walaupun ia masih sah di C 17, ketidakselesaan CWG dengan teknik tersebut menunjukkan bahawa hari-harinya mungkin terbilang. Pembangun yang menggunakan teknik ini harus mengetahui potensi kaveat ini dan memantau kemas kini masa hadapan dalam standard C untuk memastikan integriti kod mereka.

Atas ialah kandungan terperinci Adakah Pengaturcaraan Meta Stateful Sah dalam C 17?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan