Как потребовать реализацию функции для аргумента универсального типа - PullRequest
0 голосов
/ 24 января 2019

У меня есть универсальный тип для моего класса, но сам универсальный тип должен реализовать функцию 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 ()?

...