这是一个常见的模板功能
Content-Length
但是,我也看到了这样的模板:
template <typename T>
void func(T param) {
// ...
}
我知道这是合法的,但明显的N与参数无关。 型。在模板中添加额外整数的官方规则是什么?这个叫什么?我可以将额外的模板参数设置为float或double而不是整数吗?如果没有,为什么整数是特殊的?
答案 0 :(得分:1)
它被称为non-type template parameters。您可以使用简单类型,如整数
请注意,自C ++ 17起,您可以使用auto
来扣除非类型模板参数。
不允许浮动和双打。但为什么?!看看Why can't I use float value as a template parameter?