具有size_t模板参数的函数

时间:2016-01-23 20:25:28

标签: c++ templates template-deduction

我正在尝试理解模板功能。最终目标是将整个数组传递给函数。似乎有许多不同的方法来实现它,但它们都使用模板功能。这是我发现的一个更简单的例子......

template<size_t N>
void h(Sample (&arr)[N])
{
    size_t count = N; //N is 10, so would be count!
    //you can even do this now:
    //size_t count = sizeof(arr)/sizeof(arr[0]);  it'll return 10!
}
Sample arr[10];
h(arr); //pass : same as before!

我认为模板&lt;&gt;用于创建一个可用于代替int,float,char等的变量。指定类型(size_t)的重点是什么,这是做什么的?

2 个答案:

答案 0 :(得分:2)

size_t N模板参数是基于传递给模板函数的数组大小的推导积分值。模板参数可以是

  • 非类型模板参数;
  • 类型模板参数;
  • 模板模板参数。

参考:Template Parameters

答案 1 :(得分:-1)

您可以将模板重用于任何大小的数组。