65 votes

Lambda comme paramètre de fonction

Quelle est la notation pour déclarer une variable lambda, ou un paramètre de fonction, sans l’utilisation de ou de `` modèles ? Y a-t-il un moyen de le faire? Ou le compilateur définit-il un objet de classe unique pour chaque lambda dont le nom est inconnu du programmeur avant l’heure de la compilation ? Si oui, pourquoi? Ne peuvent-ils pas simplement être passés comme une sorte de pointeur de fonction? Ce serait une grande déception si cela n’était pas possible.

62voto

Todd Gardner Points 8688

Les lambdas peuvent contenir un état (comme les références capturées à partir du contexte environnant) ; s’ils ne le font pas, ils peuvent être stockés dans un pointeur de fonction. Si c’est le cas, ils doivent être stockés en tant qu’objet de fonction (car il n’y a pas d’endroit où conserver l’état dans un pointeur de fonction).

26voto

David Alber Points 6205

Vous pouvez utiliser un wrapper polymorphe pour un objet de fonction. Par exemple:

Prograide.com

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.

Powered by:

X