可変個引数のテンプレートを使って何ができるか試してみたところ、次のような疑問が生じました。
他のいくつかのクラスをテンプレート パラメーターとして使用できるクラスがあり、それぞれにネストされたクラスがあるとします (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には、A1::nested_classとA2::nested_classを継承するネストされたクラスInnerClassがあるという考えです。
そのようなことを達成できるものはありますか?私は個人的に方法を理解できませんが、おそらく可能です。Alexandrescu の Hierarchy Generators (Loki にあります: http://loki-lib.sourceforge.net/html/a00653.html ) のような継承階層ビルダーは役に立ちますか?
誰かがアイデアを持っている場合は、事前に感謝します。