#include <iostream>
using namespace std;
template <class F>
auto cify_no_args(F&& f) {
static F fn = std::forward<F>(f);
return [] {
return fn();
};
}
void some_c_func(int (*callback)()) {
std::cout << callback() << "\n";
}
int main() {
for (int i = 10; i < 20; ++i) {
some_c_func(cify_no_args([=]() {
return i;
}));
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0ZW1wbGF0ZSA8Y2xhc3MgRj4KYXV0byBjaWZ5X25vX2FyZ3MoRiYmIGYpIHsKICBzdGF0aWMgRiBmbiA9IHN0ZDo6Zm9yd2FyZDxGPihmKTsKICByZXR1cm4gW10gewogICAgcmV0dXJuIGZuKCk7CiAgfTsKfQp2b2lkIHNvbWVfY19mdW5jKGludCAoKmNhbGxiYWNrKSgpKSB7CglzdGQ6OmNvdXQgPDwgY2FsbGJhY2soKSA8PCAiXG4iOwp9CgppbnQgbWFpbigpIHsKCWZvciAoaW50IGkgPSAxMDsgaSA8IDIwOyArK2kpIHsKCQlzb21lX2NfZnVuYyhjaWZ5X25vX2FyZ3MoWz1dKCkgewoJCQlyZXR1cm4gaTsKCQl9KSk7Cgl9CglyZXR1cm4gMDsKfQ==