Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Visual Studio 2017 versão 15.3 e posterior (disponível no modo /std:c++17 e posterior): uma expressão lambda pode ser declarada como constexpr ou usada em uma expressão de constante quando a inicialização de cada membro de dados que ela captura ou introduz é permitida dentro de uma expressão de constante.
int y = 32;
auto answer = [y]() constexpr
{
int x = 10;
return y + x;
};
constexpr int Increment(int n)
{
return [n] { return n + 1; }();
}
Uma lambda será implicitamente constexpr se o seu resultado atender aos requisitos de uma função constexpr:
auto answer = [](int n)
{
return 32 + n;
};
constexpr int response = answer(10);
Se uma lambda for implicitamente ou explicitamente constexpr e você convertê-la em um ponteiro de função, a função resultante também será constexpr:
auto Increment = [](int n)
{
return n + 1;
};
constexpr int(*inc)(int) = Increment;
Confira também
Referência da linguagem C++
Objetos de função na Biblioteca Padrão C++
Chamada de função
for_each