Heim > Backend-Entwicklung > C++ > Hauptteil

Können Lambda-Funktionen in „constexpr'-Kontexten verwendet werden?

DDD
Freigeben: 2024-10-31 00:30:29
Original
977 Leute haben es durchsucht

 Can Lambda Functions Be Used in `constexpr` Contexts?

constexpr-Unterstützung für Lambda-Funktionen

constexpr-Unterstützung für Lambda-Funktionen ist ein viel diskutiertes Thema in der C-Community. Obwohl Lambdas gemäß [expr.const]/(2.6) derzeit nicht in konstanten Ausdrücken zulässig sind, schlägt N4487, das im Arbeitsentwurf N4582 enthalten ist, vor, diese Einschränkung aufzuheben.

Vorgeschlagener Lambda- Verwandte Änderungen:

  • Lambdas in konstanten Ausdrücken zulassen.
  • Betrachten Sie einen Abschlusstyp als Literaltyp, wenn alle seine Datenelemente Literaltypen sind.
  • Wenn der constexpr-Spezifizierer im Lambda-Deklarator weggelassen wird, gilt der generierte Funktionsaufrufoperator als constexpr, wenn er die Anforderungen einer constexpr-Funktion erfüllt.

Beispiel:

Das folgende Beispiel ist gültig, sobald N4487 akzeptiert wird:

<code class="c++">struct Test
{
  static const int value = []() constexpr { return 0; } ();
};</code>
Nach dem Login kopieren

Problemumgehung:

Als Problemumgehung, bevor die constexpr-Unterstützung offiziell hinzugefügt wird, können Sie verwenden eine Funktionsvorlage anstelle eines Lambda:

<code class="c++">struct Test
{
  template <typename>
  static const int value = 0;
};</code>
Nach dem Login kopieren

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

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!