2014-02-18 36 views
0

我这是在它的参数模板函数:数组功能专业化不会被调用

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

尝试

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

谢谢你,这个工作。当系统允许我时,我会选中它。 这是完美的可变大小的数组。就我而言,我可能需要一个固定大小的数组。使用你的答案,我专门为我的长度三个数组。 – selecsosi