Pourquoi les expressions C ++ valides suivantes? Ce ne sont pas des lambdas
[]{}();
{}[]{};
Quelqu'un peut-il m'expliquer?
Pourquoi les expressions C ++ valides suivantes? Ce ne sont pas des lambdas
[]{}();
{}[]{};
Quelqu'un peut-il m'expliquer?
Le premier est un lambda sans liste de paramètres et un appel ultérieur.
[]{}
est équivalent à [](){}
, donc l'ensemble de la ligne est équivalente à
[](){}();
Le second est une paire d'accolades, ce qui introduit un, puis fermer immédiatement une portée, suivie par une partie inutilisée lambda définition avec aucun paramètre de la liste:
{
// empty scope
}
[]{}; // lambda
Vous pouvez vous référer à http://en.cppreference.com/w/cpp/language/lambda pour les variations de lambda définition de la syntaxe.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.