#include <iostream>
struct X { void f() { std::cout << "hello\n"; } };
void f(X* p) { p->f(); }
struct Y : private X { void g() { ::f(this); }};
int main()
{
Y y;
y.g();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IFggeyB2b2lkIGYoKSB7IHN0ZDo6Y291dCA8PCAiaGVsbG9cbiI7IH0gfTsKCnZvaWQgZihYKiBwKSB7IHAtPmYoKTsgfQoKc3RydWN0IFkgOiBwcml2YXRlIFggeyB2b2lkIGcoKSB7IDo6Zih0aGlzKTsgfX07CgppbnQgbWFpbigpCnsKCVkgeTsKCXkuZygpOwp9