benno90
11/12/2019 - 8:39 PM

lambdas ond so

  
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:
};