c++ - 未调用数组的函数特化

标签 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 数组版本?

谢谢

最佳答案

尝试

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

关于c++ - 未调用数组的函数特化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21867006/

相关文章:

php - 从函数中回显 PHP 变量的宽度 : Style

c++ - 覆盖 QGraphicsLineItem::paint() 时 100% CPU 使用率

c++ - SDL_BlitSurface() 返回 -1 ... 为什么?

python - 如何将 3D .obj 对象表示为 3D 数组?

ios - JSON创建方法

postgresql - 使用 for 循环 postgresql 创建表

c++ - 在 main.cpp 中而不是在头文件中定义函数是不好的做法吗?

c++ - 如何在互斥锁中优先考虑特权线程?

arrays - 有没有办法访问向量中的索引

c - 如何确定 C 中数组的大小?