#include <iostream>
#include <functional>
class X {
public:
void test(int v) {
caller([this](int v) { callbackMember(v); }, v);
}
void caller(std::function<void (int)> callback, int v) {
callback(v);
}
void callbackMember(int v) {
std::cout << "callerMember, v = " << v << '\n';
}
};
int main() {
X x;
x.test(777);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KCmNsYXNzIFggewpwdWJsaWM6CgogIHZvaWQgdGVzdChpbnQgdikgewogIAljYWxsZXIoW3RoaXNdKGludCB2KSB7IGNhbGxiYWNrTWVtYmVyKHYpOyB9LCB2KTsKICB9CiAgCiAgdm9pZCBjYWxsZXIoc3RkOjpmdW5jdGlvbjx2b2lkIChpbnQpPiBjYWxsYmFjaywgaW50IHYpIHsKICAJY2FsbGJhY2sodik7CiAgfQogIAogIHZvaWQgY2FsbGJhY2tNZW1iZXIoaW50IHYpIHsKICAJc3RkOjpjb3V0IDw8ICJjYWxsZXJNZW1iZXIsIHYgPSAiIDw8IHYgPDwgJ1xuJzsKICB9Cn07CgppbnQgbWFpbigpIHsKICBYIHg7CiAgeC50ZXN0KDc3Nyk7Cn0=