#include <iostream>
struct something
{
int n;
void print() { std::cout << n << std::endl; }
};
int main()
{
something s1 = { 123 };
union
{
void (something::*memfun)();
void (*print)( something& );
};
memfun = &something::print;
print(s1);
}
CiNpbmNsdWRlIDxpb3N0cmVhbT4KCnN0cnVjdCBzb21ldGhpbmcKewogIGludCBuOwogIHZvaWQgcHJpbnQoKSB7IHN0ZDo6Y291dCA8PCBuIDw8IHN0ZDo6ZW5kbDsgfQp9OwoKCmludCBtYWluKCkKewogIHNvbWV0aGluZyBzMSA9IHsgMTIzIH07CiAgCiAgdW5pb24KICB7CiAgCXZvaWQgKHNvbWV0aGluZzo6Km1lbWZ1bikoKTsKICAJdm9pZCAoKnByaW50KSggc29tZXRoaW5nJiApOwogIH07CiAgCiAgbWVtZnVuID0gJnNvbWV0aGluZzo6cHJpbnQ7CiAgcHJpbnQoczEpOwp9Cg==