#include <iostream>
#include <functional>

class A
{
    std::function<void()> m_Lambda;

public:
    A(std::function<void()> lambda): m_Lambda(lambda) {}

    void ExecuteLambda()
    {
        m_Lambda();
    }
};

int main()
{
    int i1 = 1;
    int i2 = 2;
    
    const auto lambda = [&]()
    {
        std::cout << "i1 == " << i1 << std::endl;
        std::cout << "i2 == " << i2 << std::endl;
    };

    A a(lambda);
    a.ExecuteLambda();

	return 0;
}