我正在创建一个模板化的矢量结构(数学结构,而不是STL容器),其中数据类型和元素数量被参数化;即Vector <int,3>
存储三个整数。我想编写一个构造函数,它接受参数化的number-of-elements参数并用它们初始化底层数组。我想我需要使用一个可变参数模板。这是我的尝试:
template<typename T, unsigned int n>
struct Vector
{
T data[n];
explicit Vector(const T& fillVal)
{
std::fill(data, data+n, fillVal);
}
explicit Vector(T... args)
: data(args...)
{}
};
编译器给出了“'T':不包含参数包”的错误。我该如何解决这个问题以达到我想要的行为?另外,我是否需要测试参数的类型和数量,如果是,如何测试?