Даже не видя ошибки, я могу сказать вам одну вещь, которую вы, вероятно, делаете неправильно. Здесь:
void TestClass<T>::testMethod(T b,std::map<T,int> m){
Вы знаете, что вы берете целую карту со значением ?
Это, однако, не является источником ошибки. Карта является отсортированным ассоциативным контейнером и ожидает ключи, которые можно отсортировать. Встроенные типы сортируются с помощью оператора <
. Для вашего собственного класса вам нужно либо предоставить оператор, либо инициализировать карту с помощью специального функтора сортировки.
Отсюда либо оператор:
bool operator<(const SomeClass&,const SomeClass&)
{
return ...;
}
... или функтор:
struct CompareSomeClass {
bool operator()(const SomeClass&,const SomeClass&)
{
return ...;
}
};