假设我有:
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* 构造函数?
基本上我希望构造函数存在或不存在基于策略类。