Специализация метода. Нужно устранить ошибку
От: SVV Беларусь  
Дата: 23.08.22 12:46
Оценка:
Всем привет, есть такой код:
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;
}

как правильно написать специализацию метода?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.