Sabit bir değere sahip olduğumu varsayalım (muhtemelen bazı enum türlerinde). Diyelim ki pek çok sınıf A, B, D, vb. Var.Derleme süresinde, muhtemelen şablonlar kullanarak bir sınıf seçmek için sabit bir sayı kullanabilir miyim?
Böyle bir şeye sahip olabilir miyim?
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
Yani, derleme zamanında bir sabit sayısına dayanarak bir sınıf seçmek mümkün mü?
Genel sorun, dizinin bir numara olduğu bir tabloyu temel alarak bir functor seçmeye çalışıyorum. Mümkünse polimorfizmden kaçınmak istiyorum.
Düzenleme: C++ 11 kullanamazsınız Bu proje için, yine bu bağlamda cevap kim sayesinde çok ilginç zaten bilmek.
Düzenleme 2:
template <int N>
struct C {
typedef typename std::conditional<N == 1,A,B>::type type;
};
Sen C<1>::type foo;
olarak bulur: Ben 2'den fazla hedef sınıfları olabilir Genel olarak, Sorumu
Belki de "fabrika kalıbı" nı okuyun – arne