constexpr Lambda-Ausdrücke in C++
Visual Studio 2017, Version 15.3 und höher (verfügbar im /std:c++17
Modus und höher): Ein Lambda-Ausdruck kann in constexpr
einem konstanten Ausdruck deklariert oder verwendet werden, wenn die Initialisierung der einzelnen Datenmemmelemente, die er erfasst oder einführt, innerhalb eines konstanten Ausdrucks zulässig ist.
int y = 32;
auto answer = [y]() constexpr
{
int x = 10;
return y + x;
};
constexpr int Increment(int n)
{
return [n] { return n + 1; }();
}
Eine Lambda-Funktion ist implizit constexpr
, wenn ihr Ergebnis den Anforderungen einer constexpr
Funktion entspricht:
auto answer = [](int n)
{
return 32 + n;
};
constexpr int response = answer(10);
Wenn eine Lambda-Funktion implizit oder explizit constexpr
ist und Sie sie in einen Funktionszeiger konvertieren, lautet die resultierende Funktion auch constexpr
:
auto Increment = [](int n)
{
return n + 1;
};
constexpr int(*inc)(int) = Increment;
Siehe auch
C++-Programmiersprachenreferenz
Funktionsobjekte in der C++-Standardbibliothek
Funktionsaufruf
for_each
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für