#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;
}