1
如何获取类模板以接受可能具有两个不同参数列表之一的另一个类模板?也就是说,非类型参数或类型和非类型参数:部分专门化具有不同模板参数的模板的模板类
template <int X>
struct Foo1{};
template <typename T, int X>
struct Foo2{};
我希望能够为任一这些模板传递给我的模板(加上跟随他们的脚步未来模板)。我希望这说明了我后,虽然语法是全错:
template <typename T, int X, class>
struct Magic; //Don't accept non template parameters
template <typename T, int X, class <int> class C>
struct Magic<T, X, C> {}; //Template non-type
template <typename T, int X, class <class, int> class C>
struct Magic<T, X, C> {}; //Template type and non-type
我想不出一种方法来写这些专业化。如果这是不可能的,我可以只有Foo1
,并且像它这样的所有模板都有一个模板类型参数,该模板类型参数不会执行任何操作(template <typename, int X> Foo1{};
)并且写入Magic
,但我希望获得更优雅的解决方案。
[唯一](http://coliru.stacked-crooked.com/a/ac1f9446d910331d)解决方案,我能想到的 –
@PiotrSkotnicki辉煌!如果你想让它成为答案,那肯定会回答这个问题。 –