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:
Beispiel:
Das folgende Beispiel ist gültig, sobald N4487 akzeptiert wird:
<code class="c++">struct Test { static const int value = []() constexpr { return 0; } (); };</code>
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>
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!