У меня есть шаблонный класс, в котором я специализируюсь на нескольких методах. По какой-то причине, когда я добавил специализацию для структуры, мне показалось, что это противоречит специализации для bool. Я получаю ошибку преобразования типа, потому что пытается установить struct = bool (разрешение на неправильную специализацию). Вот код
.h:
typedef struct foo {
...
}
template <class T> class bar {
template <class T> void method1() {...}
template <> void method1<bool>() {...}
template <> void method1<foo>() {...}
}
.cpp
template class bar<bool>;
template class bar<foo>;
Я получаю сообщение об ошибке внутри method1<bool>
, потому что он устанавливает T = foo вместо разрешения method1<foo>
.
Любые идеи?