12
In C++0x, I'm wondering what the type is of a lambda function. Specifically:
#include<iostream>
type1 foo(int x){
return [x](int y)->int{return x * y;};
}
int main(){
std::cout<<foo(3)(4);//would output 12
type2 bar = foo(5);
std::cout<<bar(6);//would output 30
return 0;
}
What do I need to replace type1/type2 with to get the above to work? Hopefully you can see what I'm trying to accomplish, so even if this isn't possible by a direct replacement of type1 and type2, perhaps you can guide me in the right direction.
In other words:
- How can I get a function to return an anonymous function?
- How can I assign an anonymous function to a variable?
Thanks!
Edit: I'm compiling with visual studio 2010