Поиграв немного с вариативными шаблонами, чтобы посмотреть, что с ними можно сделать, я обнаружил, что задаюсь вопросом:
Предположим, у меня есть класс, который может принимать несколько других классов в качестве параметров шаблона, каждый из которых имеет вложенный класс (назовем его nested_class):
template<typename... Classes> class MyClass {
class InnerClass { ... };
};
то, что я хотел бы достичь, находится внутри MyClass, создайте класс, который наследуется от каждого из классов параметров вложенного класса.
Например:
class A1 {
public:
struct nested_class {
do_stuff() { ... }
};
};
class A2 {
public:
struct nested_class {
do_other_stuff() { ... }
};
};
using C = MyClass<A1, A2>;
идея заключалась бы в том, что C имеет вложенный класс InnerClass, который наследует A1::nested_class и A2::nested_class.
Есть ли что-нибудь, что могло бы достичь такого? Я лично не могу найти способ, но, возможно, это возможно. Будут ли строители иерархии наследования, такие как генераторы иерархии Александреску (которые можно найти в Loki: http://loki-lib.sourceforge.net/html/a00653.html) поможет?
заранее спасибо, если у кого есть идеи.