Assurer l'exécution exclusive des branches Constexpr if/else
En C , lors de la construction d'une série d'instructions constexpr if/else, il est souhaitable de assurez-vous que la branche else n'est jamais exécutée. Cela se fait généralement en répétant l'évaluation de toutes les conditions de la clause else, comme le montre :
static_assert(condition1 || condition2 || condition3);
Cependant, une telle répétition peut devenir fastidieuse, en particulier avec des conditions complexes.
Utilisation d'instructions dépendantes
Une solution plus élégante consiste à rendre l'instruction supprimée dépendante des paramètres du modèle. Ceci est réalisé en :
template <class...> constexpr std::false_type always_false{};
else { static_assert(always_false<T>); }
Cette approche est valide parce que :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!