лямбда-выражения constexpr в C++
Visual Studio 2017 версии 15.3 и более поздних версий (доступно в /std:c++17
режиме и более поздних версиях): лямбда-выражение может быть объявлено как constexpr
или использовано в константном выражении при инициализации каждого элемента данных, который он записывает или вводит, допускается в константном выражении.
int y = 32;
auto answer = [y]() constexpr
{
int x = 10;
return y + x;
};
constexpr int Increment(int n)
{
return [n] { return n + 1; }();
}
Лямбда-лямбда неявно constexpr
, если результат соответствует требованиям constexpr
функции:
auto answer = [](int n)
{
return 32 + n;
};
constexpr int response = answer(10);
Если лямбда-код неявно или явно constexpr
преобразуется в указатель функции, результирующая функция также constexpr
:
auto Increment = [](int n)
{
return n + 1;
};
constexpr int(*inc)(int) = Increment;
См. также
Справочник по языку C++
Объекты функции в стандартной библиотеке C++
Вызов функции
for_each
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по