为什么我们使用非类型模板参数?

oiy*_*yio 4 c++ templates arguments

我理解这个概念,但我不知道为什么我需要使用非类型模板参数?

jua*_*nza 15

有很多用例,所以让我们看看它们必不可少的几种情况:

返回数组的大小:

template <typename T, unsigned int N>
unsigned int size(T const (&)[N])
{
  return N;
}
Run Code Online (Sandbox Code Playgroud)

它们在模板元编程中也非常有用.