不调用数组的函数特化

时间:2014-02-18 22:38:12

标签: c++ arrays function declaration specialization

我有一个函数,它的参数是模板化的:

template <class Vector>
void F(Vector& vec);

我想为数值数组添加此函数的特化。我的尝试看起来像这样:

template <class NumType>
void F(NumType array[]);

我在调用代码中的专用函数时遇到了困难。见下文:

void main()
{
  double a[] = {0.0, 1.0};
  F(a); // This calls the Vector version of the function,
        // with Vector = double [3], in my specific case.
}

如果有帮助,我事先知道该函数需要长度为3的数组才能正常工作。

如何修复我的专用函数声明,以便调用该函数的NumType数组版本?

由于

1 个答案:

答案 0 :(得分:1)

尝试

template <class NumType, size_t N>
void F(NumType (&array)[N]);