#include <iostream>
using namespace std;
class MyClass {
int foo0() { return 0; }
int foo1() { return 1; }
template<int (MyClass::*fun)()> void test0() { const auto i = (this->*fun)(); }
void test1() { test0<&MyClass::foo0>(); }
void test2() {
const auto fun0 = &MyClass::test0<&MyClass::foo0>;
const auto fun1 = &MyClass::test0<&MyClass::foo1>;
(this->*fun0)();
(this->*fun1)();
}
};
int main() {
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgTXlDbGFzcyB7CglpbnQgZm9vMCgpIHsgcmV0dXJuIDA7IH0KCWludCBmb28xKCkgeyByZXR1cm4gMTsgfQoJdGVtcGxhdGU8aW50IChNeUNsYXNzOjoqZnVuKSgpPiB2b2lkIHRlc3QwKCkgeyBjb25zdCBhdXRvIGkgPSAodGhpcy0+KmZ1bikoKTsgfQoJdm9pZCB0ZXN0MSgpIHsgdGVzdDA8Jk15Q2xhc3M6OmZvbzA+KCk7IH0KCXZvaWQgdGVzdDIoKSB7CgkJY29uc3QgYXV0byBmdW4wID0gJk15Q2xhc3M6OnRlc3QwPCZNeUNsYXNzOjpmb28wPjsKCQljb25zdCBhdXRvIGZ1bjEgPSAmTXlDbGFzczo6dGVzdDA8Jk15Q2xhc3M6OmZvbzE+OwoJCSh0aGlzLT4qZnVuMCkoKTsKCQkodGhpcy0+KmZ1bjEpKCk7Cgl9CQp9OwoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglyZXR1cm4gMDsKfQ==