Это то, что я хотел бы сделать:
ExampleTemplate* pointer_to_template;
cin >> number;
switch (number) {
case 1:
pointer_to_template = new ExampleTemplate<int>();
break;
case 2:
pointer_to_template = new ExampleTemplate<double>();
break;
}
pointer_to_template->doStuff();
Это не скомпилируется, потому что тип шаблона должен быть указан при объявлении указателя. (ExampleTemplate* pointer_to_template
должно быть ExampleTemplate<int>* pointer_to_template
.) К сожалению, я не знаю тип шаблона, пока он не будет объявлен в блоке коммутатора. Какая самая лучшая работа для этой ситуации?