Всем привет, есть такой код:
using namespace std;
using u1 = unsigned char;
template<typename T>struct TypeH;
using TypeH1 = TypeH<int>;
using TypeH2 = TypeH<char>;
template<typename T>
struct STest4
{
template<typename H> void foo();// ключевой момент
template<> void foo<TypeH1>(){ cout << "TypeH1" << endl; }
};
//template<>
template<typename T> void STest4<T>::foo<TypeH2>(){ cout << "TypeH2" << endl; }//error C2768: 'STest4<T>::foo': illegal use of explicit template arguments
int Test4()
{
STest4<float> st4;
st4.foo<TypeH1>();
st4.foo<TypeH2>();
return 0;
}
как правильно написать специализацию метода?