#include <cstdio>
struct ass {
virtual void f() { printf("%s with %p\n", __PRETTY_FUNCTION__, this); }
};
int main()
{
ass ass;
void** pvtbl = reinterpret_cast<void***>(&ass)[0];
printf("%p\n", &ass);
reinterpret_cast<void(*)(void*)>(pvtbl[0])(&ass);
}
I2luY2x1ZGUgPGNzdGRpbz4KCnN0cnVjdCBhc3MgeyAKICAgIHZpcnR1YWwgdm9pZCBmKCkgeyBwcmludGYoIiVzIHdpdGggJXBcbiIsIF9fUFJFVFRZX0ZVTkNUSU9OX18sIHRoaXMpOyB9Cn07CgppbnQgbWFpbigpCnsKICAgIGFzcyBhc3M7CiAgICB2b2lkKiogcHZ0YmwgPSByZWludGVycHJldF9jYXN0PHZvaWQqKio+KCZhc3MpWzBdOwoKICAgIHByaW50ZigiJXBcbiIsICZhc3MpOwogICAgcmVpbnRlcnByZXRfY2FzdDx2b2lkKCopKHZvaWQqKT4ocHZ0YmxbMF0pKCZhc3MpOwp9