Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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