У меня есть интерфейс и пара реализаций класса, который хранит сериализованные объекты. Я хотел бы превратить классы реализации в классы шаблонов, чтобы я мог использовать их с несколькими типами объектов, но я получаю ошибки компилятора.
#include <iostream>
template<typename T>
class Interface{
public:
virtual void func(T& c) = 0;
};
class Container{
public:
Container() : dummy(10){}
int dummy;
};
template<typename T>
class Implementation : public Interface{
public:
void func(T& c){
std::cout << "++c.dummy " << ++c.dummy << std::endl;
}
};
int main(){
Container c;
Implementation<Container> i;
i.func(c);
return 0;
}
Я получаю сообщение "ошибка: ожидаемое имя класса перед маркером‘ {’" в строке "Реализация класса ...".
Спасибо.