Как написать явную специализацию для объекта
Car<T>
в виртуальном методе clear ()?
template <class U>
class List
{
public:
virtual void clear();
};
template <class T>
template <>
void List < Car <T> >::clear() //Specialization U = Car <T>, compiler error
{
....
}
class car:
template <class T>
class Car
{
T speed;
...
}
Ошибка компиляции:
Ошибка 16 Ошибка C3855: «Список»: параметр шаблона «Автомобиль» несовместим с объявлением h: ... \ List.hpp 75 Ошибка 20 Ошибка C2264: «Список :: очистить»: ошибка в функцииопределение или декларация;функция не называется h: ... \ List.hpp 75
Но эта конструкция в порядке
template <>
void List < Car <double> >::clear() //Specialization U = Car <T>, compiler error
{
....
}