Обязательно ли указывать шаблон даже для указателя во время компиляции?
Да.
Что если контейнер должен хранить объектыдругой тип ?Разве это невозможно?
Это невозможно (напрямую).
Нет такой вещи, как класс ABC.Есть только экземпляры ABC, такие как ABC<Foo>
и ABC<Bar>
.Это совершенно разные классы.
Вы можете сделать что-то вроде:
template<typename T>
class ABC : public ABC_Base
{
...
}
list<ABC_Base*> some_list;
Таким образом, все ваши экземпляры ABC имеют общий базовый тип, и вы можете произвольно использовать базовый указатель.