Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menjamin Pelaksanaan Eksklusif Constexpr if/else Cawangan dalam C ?
Memastikan Pelaksanaan Eksklusif Cawangan Constexpr if/else
Dalam C , apabila membina satu siri pernyataan constexpr if/else, adalah wajar untuk memastikan bahawa cawangan lain tidak pernah dilaksanakan. Ini biasanya dilakukan dengan mengulangi penilaian semua keadaan dalam klausa else, seperti yang dilihat dalam:
static_assert(condition1 || condition2 || condition3);
Walau bagaimanapun, pengulangan sedemikian boleh menjadi membosankan, terutamanya dengan keadaan yang kompleks.
Menggunakan Penyata Bergantung
Penyelesaian yang lebih elegan melibatkan membuat pernyataan yang dibuang bergantung pada parameter templat. Ini dicapai dengan:
template <class...> constexpr std::false_type always_false{};
else { static_assert(always_false<T>); }
Pendekatan ini sah kerana:
Atas ialah kandungan terperinci Bagaimana untuk Menjamin Pelaksanaan Eksklusif Constexpr if/else Cawangan dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!