0
下面定义了一个可变参数的非类型嵌套类模板DEF
。根据为Ts
提供的类型参数,非类型模板参数可能是异构的。异构可变参数非类型模板参数计数是否灵活?
template <typename ...Ts>
struct ABC {
template <Ts ...Xs>
struct DEF {};
};
甲DEF
对象可以声明如下:
ABC<int,bool>::DEF<17,true> x;
我的问题是,可以提供给DEF
非类型模板参数的数目小于所提供的的类型的模板的参数数量ABC
?例如,这些声明是有效的:
ABC<int,bool>::DEF<17> y;
ABC<int,bool>::DEF< > z;
Thankyou Xeo。我想知道这是如何影响“Xs”名称的性质的?您的答案的含义不是这只会给* last *类型指定一个名称吗?我在Clang和GCC看到,使用上面例子中的'Xs ...'可以通过'make_tuple(Xs ...)'扩展来填充'元组(17,true)'。 –
user2023370
@user:只是因为'Ts ...'是一个包扩展,并不意味着'Xs'不是一个参数包。 :) – Xeo