私が持っているとします:
struct Magic {
Magic(Foo* foo);
Magic(Bar* bar);
};
Magic をテンプレートにして、テンプレート クラス st を定義する方法はありますか
typedef Magic<FooPolicy, ...> MagicFoo;
typedef Magic<BarPolicy, ...> MagicBar;
typedef Magic<..., ...> MagicNone;
typedef Magic<FooPolicy, BarPolicy> MagicAll;
st MagicFoo & MagicAll には Foo* コンストラクターがあります。MagicBar & MagicAll には Bar* コンストラクターがあります。MagicNone は Foo* コンストラクターでも Bar* コンストラクターでもありませんか?
基本的には、ポリシー クラスに基づいてコンストラクターが存在するかどうかを確認します。