Я знаю, как наследовать классы с шаблонами в целом. Но когда дело доходит до вложенных классов/шаблонов, я понятия не имею и не могу найти что-либо в Интернете (возможно, потому, что я не знаю ключевых слов для него).C++: класс Inherit с шаблонами
template <typename T>
class A;
template <class T1, class T2>
class B;
template < typename T1, class T2, class T3 >
class C2:
public C< A<T1>, B<T2, T3> >
{};
Я хочу C2
быть определен таким же образом C
определена, т.е. C2< A<T1>, B<T2, T3> >
и не C2<T1, T2, T3>
. Но я не знаю никакого синтаксиса или обходного пути, как этого добиться.
Редактировать: T.C. правильно, я хочу, чтобы конечный пользователь написал только C2< A<T1>, B<T2, T3> > foo;
, C2<foo, bar> foo;
не должен быть разрешен.
Я несколько раз прочитал ваш вопрос, и я не получить то, что вы просите. Прежде всего: как определяется 'C'? –
Вы хотите, чтобы конечный пользователь написал 'C2 < A, B > foo;' а не 'C2 foo;'? Что должно произойти, если они пишут 'C2 foo;'? –
'template <класс, класс> класс C2;/* undefined */template <класс T1, класс T2, класс T3> класс C2 , B>: public C < A, B > {/ * definition * /}; ' –