Могу ли я использовать постоянное число, чтобы выбрать класс во время компиляции, возможно, используя шаблоны?

Допустим, у меня есть постоянное значение (возможно, некоторого типа enum). Допустим, у меня много классов A, B, D и т. Д.

Могу ли я иметь что-то подобное?

C<1> anInstanceOfA; //This will be of type A
C<2> anInstanceOfB; //This will be of type B
C<3> anInstanceOfD; //This will be of type D

Итак, возможно ли выбрать класс на основе постоянного числа во время компиляции?

Общая проблема заключается в том, что я пытаюсь выбрать функтор на основе таблицы, в которой индекс является перечислением. Я хотел бы избежать полиморфизма, если это возможно.

Редактировать: Для этого проекта я не могу использовать C ++ 11, в любом случае, спасибо тем, кто ответил в этом контексте, очень интересно знать.
Изменить 2: В целом я могу иметь более 2 целевых классов, я отредактировал свой вопрос

Ответы на вопрос(3)

Ваш ответ на вопрос