我看到了一些像这样的代码:
template<unsigned N, unsigned M>
bool compare (const char (&p1)[N], const char (&p2)[M])
{
std::cout << "size : " << N << " " << M << std::endl;
return strcmp(p1, p2);
}
模板不会将typename
或class
作为参数,但使用unsigned
,使用模板的非类型参数有什么用途?
在哪种情况下我们应该使用非类型参数编写模板?