Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Program Visual Studio 2017 w wersji 15.3 lub nowszej (dostępny w /std:c++17
trybie i nowszych): wyrażenie lambda może być zadeklarowane jako constexpr
lub używane w wyrażeniu stałym, gdy inicjowanie każdego elementu członkowskiego danych, który przechwytuje lub wprowadza, jest dozwolone w wyrażeniu stałym.
int y = 32;
auto answer = [y]() constexpr
{
int x = 10;
return y + x;
};
constexpr int Increment(int n)
{
return [n] { return n + 1; }();
}
Lambda jest niejawnie constexpr
, jeśli jego wynik spełnia wymagania constexpr
funkcji:
auto answer = [](int n)
{
return 32 + n;
};
constexpr int response = answer(10);
Jeśli lambda jest niejawnie lub jawnie constexpr
, i konwertujesz go na wskaźnik funkcji, wynikowa funkcja jest również constexpr
:
auto Increment = [](int n)
{
return n + 1;
};
constexpr int(*inc)(int) = Increment;
Zobacz też
Dokumentacja języka C++
Obiekty funkcji w standardowej bibliotece C++
Wywołanie funkcji
for_each