2
я пытаюсь сделать что-то вроде этого:Как передать параметры параметра шаблона шаблон
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<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?
Спасибо вам за ответ. Разве нет другого решения? Это похоже на параметр шаблона 3. и 4 для ClassB, но они должны специализироваться на ClassA –
@jisaak: Нет. Или это, либо сделать ClassA аргументами по умолчанию и использовать «ClassB>» во втором случае , –
kennytm
хорошо, спасибо. –