template <int S>
struct Vec {};
现在我想编写一个只接受这些向量的函数,但模板参数的值不同。可以这样调用:
f(Vec<1>(), Vec<2>(), Vec<3>());
我怎样才能写出这样的函数?我想使用参数包。可能是这样的:
template<int... Ss>
f(Vec<Ss...> vecs);
我想让用户看到该函数仅从其声明而不是编译错误中期望向量。
您需要使用:
template <int... Ss>
void f(Vec<Ss>... vecs) { ... }
在我的设置中构建的程序:
template <int S>
struct Vec {};
template <int... Ss>
void f(Vec<Ss>... vecs)
{
}
int main()
{
f(Vec<1>(), Vec<2>(), Vec<3>());
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句