Unterschied zwischen „if constexpr()“ und „if()“
In C sind „if constexpr()“ und „ if()“-Anweisungen stellen eine bedingte Auswertung während der Kompilierung bzw. Laufzeit bereit.
Schlüssel Unterschied:
Der Hauptunterschied zwischen „if constexpr()“ und „if()“ liegt in ihrer Auswertungszeit:
Verwendung und Anwendungen:
if constexpr()
if()
Beispiel:
Bedenken Sie Folgendes Codeausschnitt, der die Länge eines Werts basierend auf seinem Typ berechnet:
template<typename T> auto length(const T& value) noexcept { if constexpr (std::is_integral<T>::value) { return value; } else { return value.length(); } }
Durch die Verwendung von if constexpr kann der Compiler den Zweig für den anderen Typ eliminieren, was zu effizientem Code führt Generation.
Das obige ist der detaillierte Inhalt von„if constexpr()' vs. „if()': Bedingte Auswertung zur Kompilierungszeit vs. zur Laufzeit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!