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.
Réponses
Trop de publicités?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).
David Alber
Points
6205
Vous pouvez utiliser un wrapper polymorphe pour un objet de fonction. Par exemple: