#include <iostream>

struct foo
{
	template <typename T>
	void bar();
};

template <typename T>
void foo::bar()
{
	std::cout << "bar<T>()\n";
}

template <>
void foo::bar<int>()
{
	std::cout << "bar<int>()\n";
}

int main()
{
	foo f;
	f.bar<int>();
	f.bar<double>();
}