Sicherstellung der exklusiven Ausführung von Consexpr if/else-Zweigen
In C ist es beim Erstellen einer Reihe von constexpr if/else-Anweisungen wünschenswert, dies zu tun Stellen Sie sicher, dass der else-Zweig niemals ausgeführt wird. Dies geschieht normalerweise durch Wiederholen der Auswertung aller Bedingungen in der else-Klausel, wie in:
static_assert(condition1 || condition2 || condition3);
Eine solche Wiederholung kann jedoch mühsam werden, insbesondere bei komplexen Bedingungen.
Einsatz abhängiger Anweisungen
Eine elegantere Lösung besteht darin, die verworfene Anweisung von den Vorlagenparametern abhängig zu machen. Dies wird erreicht durch:
template <class...> constexpr std::false_type always_false{};
else { static_assert(always_false<T>); }
Dieser Ansatz ist gültig weil:
Das obige ist der detaillierte Inhalt vonWie garantiere ich die exklusive Ausführung von Consexpr if/else-Zweigen in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!