Рассмотреть возможность
enum My_Enum {
x1, x2
};
template<class T, My_Enum X>
class A {
void f1();
void f2();
};
template<class T>
class A<T,x1> {
void g();
}
Я хочу использовать функции-члены f1()
и f2()
основного шаблона в своем частично специализированном шаблоне. Что я должен делать ?
Одним из решений было бы не выполнять частичную специализацию, а затем:
template<class T>
class AA<T> : public A<T,x1> {
void g();
}
но у него есть недостаток, заключающийся в том, что когда я запускаю A<T,X>
всех видов с помощью универсального программирования, мои A<T,x1>
больше не относятся к типу AA<T>
, и, следовательно, я не могу применить A<T,x1>.g()
Есть идеи ?