výrazy constexpr lambda v jazyce C++
Visual Studio 2017 verze 15.3 a novější (dostupné v /std:c++17
režimu a novější): Výraz lambda může být deklarován jako constexpr
nebo použit v konstantním výrazu při inicializaci každého člena dat, který zachycuje nebo zavádí, je povolen v rámci konstantního výrazu.
int y = 32;
auto answer = [y]() constexpr
{
int x = 10;
return y + x;
};
constexpr int Increment(int n)
{
return [n] { return n + 1; }();
}
Lambda je implicitně constexpr
v případě, že jeho výsledek splňuje požadavky constexpr
funkce:
auto answer = [](int n)
{
return 32 + n;
};
constexpr int response = answer(10);
Pokud je lambda implicitně nebo explicitně constexpr
a převedete ji na ukazatel funkce, výsledná funkce je také constexpr
:
auto Increment = [](int n)
{
return n + 1;
};
constexpr int(*inc)(int) = Increment;
Viz také
Referenční dokumentace jazyka C++
Objekty funkcí ve standardní knihovně C++
Volání funkcí
for_each
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro