Мой вопрос может быть не таким ясным, как хотелось бы.
Позволь мне объяснить.
У меня есть абстрактный класс матери M и много дочерних классов C1, C2, ... Cn.
В каждом дочернем элементе я должен определить типы шаблонов следующим образом:
class Child1 : public Mother
{
public:
typedef AnotherTemplateClass<Child1,int> Type1_C1;
typedef AnotherTemplateClass<Child1,bool> Type2_C1;
typedef AnotherTemplateClass<Child1,unsigned> Type3_C1;
void DoSomething(Type1_C1 a, Type2_C1 b, Type3_C1);
};
Я хотел бы определить что-то вроде:
class Mother
{
public:
typedef AnotherTemplateClass<this,int> Type1_M;
typedef AnotherTemplateClass<this,bool> Type2_M;
typedef AnotherTemplateClass<this,unsigned> Type3_M;
};
и с Child1, использующим этот тип
class Child1 : public Mother
{
void DoSomething(Type1_M a, Type2_M b, Type3_M c);
};
Я знаю, что это невозможно сделать
error: invalid use of ‘this’ at top level
но есть ли синтаксис, который мог бы решить эту проблему?
это вообще возможно?