Функция-член шаблона C ++ уже определена с тем же типом

У меня есть этот простой код ниже, шаблон с 2 параметрами типа. Если я объявлю свой класс с тем же типом (как BidirectionalMap<int,int>) Я получаю сообщение об ошибке:

int BidirectionalMap<T,S>::operator [](T) const' : member function already defined or declared

Вот мой код шаблона:

template <class T, class S>

class BidirectionalMap{
int count(T t){
return 1;
}
int count(S s){
return 1;
}
};

1

Решение

Полученная ошибка является нормальной, потому что после замены у вас есть

template <>
class BidirectionalMap<int, int>
{
int count(int t){ return 1; }
int count(int s){ return 1; } // Duplicated method
};

Чтобы решить эту проблему, вы можете предоставить частичную специализацию:

template <class T>
class BidirectionalMap<T, T>
{
int count(T t) { return 1; }
};
4

Другие решения


По вопросам рекламы [email protected]