Expresiones lambda de constexpr en C++
Visual Studio 2017 versión 15.3 y posteriores (disponible en modo /std:c++17
y versiones posteriores): una expresión lambda se puede declarar como constexpr
o usarse en una expresión constante cuando la inicialización de cada miembro de datos que captura o introduce se permite dentro de una expresión constante.
int y = 32;
auto answer = [y]() constexpr
{
int x = 10;
return y + x;
};
constexpr int Increment(int n)
{
return [n] { return n + 1; }();
}
Una expresión lambda es implícitamente constexpr
si su resultado cumple los requisitos de una funciónconstexpr
:
auto answer = [](int n)
{
return 32 + n;
};
constexpr int response = answer(10);
Si una expresión lambda es implícita o explícitamente constexpr
y la convierte en un puntero de función, la función resultante también es constexpr
:
auto Increment = [](int n)
{
return n + 1;
};
constexpr int(*inc)(int) = Increment;
Consulte también
Referencia del lenguaje C++
Objetos de función en la biblioteca estándar de C++
Llamada a función
for_each
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de