#include <stdio.h>
struct object {
    int _id;
    object(int id) : _id(id) { }
template<typename F>
void enumerate(F f)
{
    for (int i=0 ; i<16 ; i++)
    {
        f(i);
    }
}
void test()
{
    enumerate([this](int x) { this->ptr(x); });
}
void ptr(int x) { printf("%d : %d\n", _id, x); }
};
int main(int,char**)
{
    object x(22);
    x.test();
    return 0;
}
