


Wie wirkt sich ein fehlgeschlagener „static_assert' in einem nicht ausgeführten „if constexpr'-Block auf die Programmgültigkeit aus?
Wie wirkt sich ein fehlgeschlagener static_assert auf einen if constexpr-Block (false) aus?
Ein static_assert innerhalb eines nicht genommenen Zweigs eines if constexpr Die Aussage gilt als fehlerhaft und erfordert keine Diagnose. Diese Konsequenz ergibt sich aus der Regel in [temp.res]/8, die ein Programm als fehlerhaft ansieht, wenn keine gültige Spezialisierung für eine Vorlage oder eine Unteranweisung innerhalb einer constexpr if-Anweisung generiert werden kann.
In diesem Fall Wenn die Bedingung von static_assert nicht abhängig ist und als falsch ausgewertet wird, kann keine gültige Spezialisierung für die Vorlage generiert werden, die die Behauptung enthält. Dies macht das Programm fehlerhaft, auch wenn die Verzweigung nicht genommen wird.
Statische_asserts mit einer abhängigen Bedingung bleiben jedoch davon unberührt. Wenn die Bedingung für mindestens einen Typ als wahr ausgewertet werden kann, bleibt die Vorlage gültig.
Beispiel
Bedenken Sie den folgenden Code:
template< typename T>< constexpr void other_library_foo(){ static_assert(std::is_same<T,int>::value); } template<class T> void g() { if constexpr (false) other_library_foo<T>(); } int main(){ g<float>(); g<int>(); }
Obwohl die if constexpr-Bedingung falsch ist, ist der Code immer noch falsch formatiert, da static_assert in other_library_foo ein nichtabhängiges enthält Bedingung, die als falsch ausgewertet wird.
Das obige ist der detaillierte Inhalt vonWie wirkt sich ein fehlgeschlagener „static_assert' in einem nicht ausgeführten „if constexpr'-Block auf die Programmgültigkeit aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

GULC: C -Bibliothek von Grund auf neu gebaut

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

eindeutiger Gebrauch und Phrasenfreigabe

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?
