2016-01-23 81 views
0

我想了解模板功能。最終目標是將整個數組傳遞給一個函數。似乎有很多不同的方法來實現這一點,但他們都使用模板功能。下面是我發現了更簡單的例子之一...功能與size_t模板參數

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! 

我以爲模板<>被用來創造一種可以替代整數,浮點,焦炭等中使用的變量..有什麼意義指定類型(size_t),這是做什麼的?

+1

請參閱[非類型模板參數](http://en.cppreference.com/w/cpp/language/template_parameters#Template_non-type_arguments)。 –

回答

1

size_t N模板參數是基於傳遞給模板函數的數組大小推導出的整數值。模板參數可以是

  • 非模板參數;
  • 類型模板參數;
  • 模板模板參數。

here

0

可以重新使用的模板,任何大小的數組。