У меня есть универсальный тип для моего класса, но сам универсальный тип должен реализовать функцию hash (). Могу ли я потребовать это в моем объявлении класса?
Я легко могу убедиться, что я вставил функцию hash () в класс, который я передаю myClass, но я хотел бы получить ошибку компиляции, если она не существует.
template <typename _T>
class myClass
{
_T* list;
public:
myClass(){
this->list = (_T*)malloc(10,sizeof(_T));
for(int i = 0;i < 10; i++){
this->list[i]=_T(i);
}
}
unsigned int doTheThingIWant(){
return this->list[0].hash()
}
};
Кто-нибудь знает, как заставить тип _T реализовать hash ()?