#include <iostream>
#include <cstdarg>
using namespace std;
struct Test
{
void foo() {};
virtual void bar() {};
virtual void bar2() {};
virtual void bar3() {};
};
void print_hack(int dummy, ...)
{
va_list argp;
va_start(argp, dummy);
long val = va_arg(argp, long);
cout << val << endl;
va_end(argp);
}
int main() {
print_hack (0, &Test::foo);
print_hack (0, &Test::bar);
print_hack (0, &Test::bar2);
print_hack (0, &Test::bar3);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGFyZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBUZXN0CnsKCXZvaWQgZm9vKCkge307Cgl2aXJ0dWFsIHZvaWQgYmFyKCkge307IAoJdmlydHVhbCB2b2lkIGJhcjIoKSB7fTsKCXZpcnR1YWwgdm9pZCBiYXIzKCkge307Cn07Cgp2b2lkIHByaW50X2hhY2soaW50IGR1bW15LCAuLi4pCnsKCXZhX2xpc3QgYXJncDsKCXZhX3N0YXJ0KGFyZ3AsIGR1bW15KTsKCWxvbmcgdmFsID0gdmFfYXJnKGFyZ3AsIGxvbmcpOwoJY291dCA8PCB2YWwgPDwgZW5kbDsKCXZhX2VuZChhcmdwKTsKfQoKaW50IG1haW4oKSB7CglwcmludF9oYWNrICgwLCAmVGVzdDo6Zm9vKTsKCXByaW50X2hhY2sgKDAsICZUZXN0OjpiYXIpOwoJcHJpbnRfaGFjayAoMCwgJlRlc3Q6OmJhcjIpOwoJcHJpbnRfaGFjayAoMCwgJlRlc3Q6OmJhcjMpOwoJcmV0dXJuIDA7Cn0=