Heim  >  Artikel  >  Backend-Entwicklung  >  Können Lambda-Funktionen in „constexpr“-Ausdrücken verwendet werden?

Können Lambda-Funktionen in „constexpr“-Ausdrücken verwendet werden?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-01 01:15:28456Durchsuche

Can Lambda Functions Be Used in `constexpr` Expressions?

Constexpr-Unterstützung für Lambda-Funktionen

Ursprüngliche Frage:

Können Lambda-Funktionen den constexpr nutzen? Schlüsselwort?

Antwort:

In C 14 werden Lambda-Funktionen von constexpr nicht unterstützt. Dies wird sich jedoch mit der Einführung von N4487 ändern. Dieser Vorschlag würde Lambdas und bestimmte Schließungsoperationen in konstanten Ausdrücken ermöglichen.

Erklärung:

Unter [expr.const]/(2.6) des C 14-Standards, Lambdas sind von konstanten Ausdrücken ausgeschlossen. Diese Einschränkung ist in N4487 beschrieben:

„Dieser Vorschlag schlägt vor, **Lambda-Ausdrücke** in konstanten Ausdrücken zuzulassen und eine bestehende Einschränkung aufzuheben. Die Autoren schlagen vor, dass bestimmte **Lambda-Ausdrücke** und Operationen auf Bestimmte Abschlussobjekte dürfen innerhalb konstanter Ausdrücke erscheinen.

Wenn der constexpr-Spezifizierer im Lambda-Deklarator weggelassen wird, wird der generierte Funktionsaufrufoperator zu constexpr, solange er die Anforderungen einer constexpr-Funktion erfüllt. Dieses Verhalten ähnelt der constexpr-Inferenz für implizit definierte Konstruktoren und Zuweisungsoperatoren.

    Das obige ist der detaillierte Inhalt vonKönnen Lambda-Funktionen in „constexpr“-Ausdrücken verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn