Fonctions anonymes (lambda)
Bonjour Tout le monde,
Je voudrais savoir la différence entre une expression lambda et une fonction lambda.
Quel est l'intérêt d'utiliser les fonctions lambda en C++?
Pourquoi on les appelle anonymes?
Si j'ai ce code qui est correct tel qu'il est écrit:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
#include <iostream>
using namespace std;
int main()
{
auto func=[] {cout << "hello" << endl; } ;
func();
auto f= [] () -> void {
cout << "hello";
};
f();
auto f1= [] () -> double {
double r;
cout << "donner un reel" << endl;
cin >> r;
return r*r;
};
cout << f1() << endl;
return 0;
} |
pourquoi il faut mettre le mot clé auto devant le nom des fonctions anonymes/lambda?
par exemple pour la fonction f1: le type de retour est double. Pourquoi en remplaçant auto par double, le programme génère une erreur?
Code:
1 2 3 4 5 6 7 8 9
|
double f1= [] () -> double {
cout << "donner un reel" << endl;
double r;
cin >> r;
return r*r;
}; |
Merci d'avance