expressions lambda constexpr en C++
Visual Studio 2017 version 15.3 et ultérieure (disponible en /std:c++17
mode et versions ultérieures) : une expression lambda peut être déclarée comme constexpr
ou utilisée dans une expression constante lorsque l’initialisation de chaque membre de données qu’il capture ou introduit est autorisée dans une expression constante.
int y = 32;
auto answer = [y]() constexpr
{
int x = 10;
return y + x;
};
constexpr int Increment(int n)
{
return [n] { return n + 1; }();
}
Une lambda est implicitement constexpr
si son résultat répond aux exigences d’une constexpr
fonction :
auto answer = [](int n)
{
return 32 + n;
};
constexpr int response = answer(10);
Si une expression lambda est implicitement ou explicitement constexpr
, et que vous la convertissez en pointeur de fonction, la fonction résultante est également constexpr
:
auto Increment = [](int n)
{
return n + 1;
};
constexpr int(*inc)(int) = Increment;
Voir aussi
Informations de référence sur le langage C++
Objets de fonction dans la bibliothèque standard C++
Appel de fonction
for_each
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour