#include <iostream>
template <class T> struct Hoge
{
void func(void)
{
std::cout << "Hoge<T>::func" << std::endl;
}
};
template <class T> struct Hoge< Hoge<T> >
{
void func(void)
{
std::cout << "Hoge< Hoge<T> >::func" << std::endl;
}
};
int main(void)
{
Hoge<int>().func();
Hoge< Hoge<int> >().func();
return 0;
}