Calling a lambda expression multiple times
c++, c++11, lambda
Solution
You can store the lambda using `auto`, or assign it to a compatible `std::function` explicitly:
auto f1 = [](int x, int y)->float{ ..... };
std::function<float(int,int)> f2 = [](int x, int y)->float{ ..... };
float x = f1(3,4);
auto y = f2(5,6);
You can always use `f1` or `f2` to construct or assign to a specific `std::function` type later on if necessary:
std::function<float(int,int)> f3 = f1;
Problem
I'm trying the lambda-expressions from the new standard, and still don't understand them quite well. Let's say I have a lambda somewhere in my code, e.g. in my main: ``` int main( int argc, char * argv[]) { //some code [](int x, int y)->float { return static_cast<float>(x) / static_cast<float>(y); }; //some more code here //<---now I want to use my lambda-expression here } ``` Well obviously I might need to use it multiple times, so the answer "just define it right there" doesn't work :P So, how do I call this lambda expression later in the code? Do I have to make a function pointer to it and use that pointer? Or is there a better/easier way?