Czy mogę użyć stałej liczby, aby wybrać klasę w czasie kompilacji, ewentualnie używając szablonów?

Powiedzmy, że mam stałą wartość (być może jakiegoś typu wyliczeniowego). Powiedzmy, że mam wiele klas A, B, D itd.

Czy mogę mieć coś takiego?

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

Czy jest więc możliwe wybranie klasy opartej na stałej liczbie w czasie kompilacji?

Ogólny problem polega na tym, że próbuję wybrać funktor oparty na tabeli, w której indeks jest wyliczony. Chciałbym uniknąć polimorfizmu, jeśli to możliwe.

Edytować: W tym projekcie nie mogę używać C ++ 11, dzięki i tak, kto odpowiedział w tym kontekście, bardzo interesujący wiedzieć.
Edytuj 2: Ogólnie mogę mieć więcej niż 2 klasy docelowe, edytowałem moje pytanie

questionAnswers(3)

yourAnswerToTheQuestion