#include <iostream>
using namespace std;
typedef void(*Delegate)();
void test(Delegate action)
{
action();
}
int main() {
int a = 0;
auto func = [&a]() // В этом место могло быть [=] или [*]
{
++a;
std::cout << "func: " << a ;
};
static auto staticFn = func;
Delegate ptr = []( ) { return staticFn(); };
test(ptr);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgdm9pZCgqRGVsZWdhdGUpKCk7CiAKdm9pZCB0ZXN0KERlbGVnYXRlIGFjdGlvbikKewogIGFjdGlvbigpOwp9CgppbnQgbWFpbigpIHsKICBpbnQgYSA9IDA7CiAKICBhdXRvIGZ1bmMgPSBbJmFdKCkgLy8g0JIg0Y3RgtC+0Lwg0LzQtdGB0YLQviDQvNC+0LPQu9C+INCx0YvRgtGMIFs9XSDQuNC70LggWypdCiAgewogIAkrK2E7CiAgICBzdGQ6OmNvdXQgPDwgImZ1bmM6ICIgPDwgYSA7CiAgfTsKICBzdGF0aWMgYXV0byBzdGF0aWNGbiA9IGZ1bmM7CiAgCiAgRGVsZWdhdGUgcHRyID0gW10oICkgeyByZXR1cm4gc3RhdGljRm4oKTsgfTsKIAogIHRlc3QocHRyKTsKICByZXR1cm4gMDsKfQ==