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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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