Adakah Idiom Safe-Bool adalah Peninggalan C 11?
Idiom safe-bool, yang pernah digunakan secara meluas dalam C , telah dihadapi penelitian berdasarkan pengenalan pengendali penukaran boolean yang jelas oleh C 11. Menurut piawai C 11 (§4 [conv] p3), ungkapan boleh ditukar secara tersirat kepada jenis jika pengisytiharan pembolehubah yang sepadan dibentuk dengan baik. Konsep ini, yang dirujuk sebagai "penukaran kontekstual," membenarkan penetapan nilai terus kepada pembolehubah boolean.
Penggantian Safe-Bool
Sebelum C 11 , simpulan bahasa selamat-bool digunakan untuk memberikan kawalan eksplisit ke atas penukaran boolean. Ia melibatkan penentuan fungsi ahli dengan nama eksplisit seperti is_valid() atau is_active() yang mengembalikan nilai boolean. Walau bagaimanapun, dengan pengenalan operator eksplisit bool() const; C 11, pembangun kini boleh mentakrifkan operator penukaran boolean eksplisit untuk kelas mereka.
Penukaran Kontekstual dalam Tindakan
Ungkapan yang melibatkan binaan bahasa berikut memerlukan penukaran kontekstual kepada boolean:
Jawapannya
Idiom safe-bool sememangnya dianggap usang dalam C 11. Pengenalan pengendali penukaran boolean eksplisit menyediakan lebih bersih dan lebih banyak lagi. pendekatan logik untuk mengawal penukaran boolean. Dengan membenarkan penugasan terus kepada pembolehubah boolean, penukaran kontekstual menghapuskan keperluan untuk simpulan bahasa safe-bool dan memudahkan kebolehbacaan kod.
Atas ialah kandungan terperinci Adakah Idiom Safe-Bool Lapuk dalam C 11 dan Seterusnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!