Vous savez, nous pouvons conclure ou de stocker une fonction lambda à un std::function
:
#include <iostream>
#include <functional>
int main()
{
std::function<float (float, float)> add = [](float a, float b)
// ^^^^^^^^^^^^^^^^^^^^
{
return a + b;
};
std::cout << add(1, 2) << std::endl;
}
Ma question est autour de std::function
, comme vous pouvez le voir c'est une classe de modèle, mais il peut accepter n'importe quel type de fonction de signature.
Par exemple float (float, float)
dans cette forme, return_value (first_arg, second_arg)
.
Quelle est la structure de l' std::function
et comment faut-il accepter une signature de fonction comme x(y,z)
et comment il fonctionne? Est - float (float, float)
une nouvelle expression valide en C++?