Я пытаюсь сделать что-то вроде этого:
ClassA:
template < typename T1, typename T2 = int >
class ClassA {};
ClassB, используя ClassA в качестве реализации хранилища:
template
<
typename T,
template < typename = T, typename = int > class Storage = ClassA
>
class ClassB : public Storage<T> {};
Теперь я могусоздать экземпляр ClassB:
ClassB<double> myClass; // Ok, using ClassA (implicit) with <double,int> (implicit)
ClassB<double,ClassA> myClass2; // Ok, using ClassA (explicit) with <double,int> (implicit)
ClassB<double,ClassA<double,int>> myClass3; // Not ok, can't using ClassA (explicit) with <double,int> (explicit)
Как я могу параметризовать хранилище (ClassA) для ClassB?