Можно ли сделать следующее:
dtype //contains data type information
stack<dtype> st; // stack declartion
Я хочу динамически определить тип стека. Возможно ли сделать это в C ++?
Да, это возможно. По этой причине вы можете использовать полиморфизм и сохранить указатель на базовый класс в качестве аргумента шаблона стака. Затем во время выполнения вы можете решить, какой тип объекта выделить. Важно то, что он должен быть производным от базового класса.
class Object;
class A : public Object;
class B : public Object;
std::stack<Object*> buf;
if (...)
{
buf.push(new A);
} else
{
buf.push(new B);
}
Других решений пока нет …