std::function<int(int, int)> add;
add = [](int a, int b){return a + b;};
int res = add(3,5);
class Adder
{
public:
Adder(const std::function<int(int,int)>& f) {add_ = f;};
int add(int a, int b) {return add_(a,b);};
private:
std::function<int(int, int)> add_;
};
class Dummy
{
public:
int add(int a, int b) {return a + b;}
void foo()
{
std::function<int(int,int)> ad = [=](int a, int b){return this->add(a,b);};
Adder adder(ad);
cout << "foo!" << endl;
cout << adder.add(3,4) << endl;
}
private:
};