结构模板,其中构造函数参数的数量是模板参数

时间:2018-03-25 06:53:37

标签: c++ templates constructor

我正在创建一个模板化的矢量结构(数学结构,而不是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':不包含参数包”的错误。我该如何解决这个问题以达到我想要的行为?另外,我是否需要测试参数的类型和数量,如果是,如何测试?

0 个答案:

没有答案