#include <iostream>
using namespace std;

struct hoge
{
	template<int N>
	void operator ()() const
	{
		cout << N << endl;
	}
};

template<class T>
void f(T const & t)
{
	t.template operator ()<1>();
}

int main() {
	f(hoge());
	return 0;
}