模板的问题是您必须指定您想要的特定项目作为参数,例如 a typename
、 atemplate
或 a value
。但是,您不能说根据下一个参数是否是这三个参数中的任何一个来专门化模板。
我在想,如果有一种方法可以根据这些参数进行专门化,如下例所示:
template <...Xs>
struct X;
template <template <typename...> class TT>
struct X<TT> {};
template <typename T>
struct X<T> {};
template <typename T, T I>
struct X<I> {};
这是一个带有未指定参数的参数包的模板,并且只能通过专门化访问。
这允许对模板专业化进行更多控制并接受任何参数列表。有谁知道是否有任何关于这样的功能的讨论?
如果没有,提案流程是什么?