Мне интересно, есть ли у вас контейнер с объектами с различными параметрами шаблона.Контейнер шаблонных классов без параметра шаблона
Я пытаюсь добиться чего-то вроде этого:
#include <iostream>
#include <list>
template <class T>
class base
{
public:
T val;
base(T newVal): val(newVal) {};
};
class derived : public base<int>
{
public:
derived(int newVal): base(newVal) {};
};
int main (void)
{
std::list < base<?> > base_collection;
return 0;
}
Я хочу, чтобы мой текущий проект, чтобы быть гибким и динамичным, насколько это возможно, с небольшим количеством дополнительного кодирования, когда новый производный класс необходимо, и мой текущий реализация делает важным, чтобы такой список существовал.
Существует ли обычно используемый, полезный и чистый способ достижения именно этого?
«Моя текущая реализация делает важным, чтобы такой [гетерогенный] список существовал». Ой. Это анти-шаблон. Вам нужно отбросить этот проект. –
Нет, вы не можете. 'base' является * совершенно другим типом * до 'base '. И вы не можете хранить объект производного класса в переменной базового класса в любом случае. –
immibis