This is what I would like to do:
ExampleTemplate* pointer_to_template;
cin >> number;
switch (number) {
case 1:
pointer_to_template = new ExampleTempla
What you're trying to do is not possible. This is becase your ExampleTemplate class doesn't exist by itself, only exists when you relate it with a type.
You could get that behaviour using inheritance:
GeneralExampleTemplate (not a template class).ExampleTemplate inherit from GeneralExampleTemplate.GeneralExampleTemplate pointer and assign it with a (for example) ExampleTemplate.