Подскажите, пожалуйста, корректно ли в C++ делать шаблон класса, который имеет виртуальные методы? Особенно, чисто виртуальные:
template <typename T, size_t C>
class Template
{
public:
virtual void method() = 0;
};
class Impl : public Template<int, 10>
{
// ...
};
Я попытался провести эксперимент с реализацией, которая смешивает статический и динамический полиморфизм для игровых меню. У меня есть некоторые сомнения в том, что виртуальные методы будут вести себя корректно. Особенно, при наследовании в разных единицах трансляции.
Скажите, что говорит Стандарт по этому поводу?