模板参数中具有特殊整数的模板
template with special integer in the template param
这是一个常见的模板函数
template <typename T>
void func(T param) {
// ...
}
但是,我也看到如下所示的模板:
template <typename T, std::size_t N> // note the extra N
void func(T param) {
// ...
}
我知道这是合法的,但明显的 N 与参数的类型无关。在模板中添加额外整数的官方规则是什么? 这叫什么?我可以将额外的模板参数设置为浮点数或双精度而不是整数吗?如果不是,为什么整数是特殊的?
它被称为非类型模板参数。您可以使用简单的类型,例如整数
- std::nullptr_t (自C++11起(;
- 整体式;
- 左值引用类型(对象或函数(;
- 指针类型(指向对象或函数(; 指向成员
- 类型的指针(指向成员对象或成员函数(;
- 枚举类型。
请注意,从 C++17 开始,您可以使用 auto
来允许扣除非类型模板参数。
不允许浮动和双打。但是为什么?!看看为什么我不能使用浮点值作为模板参数?
相关文章:
- 如何反转整数参数包
- 带有整数的变量参数列表
- 可变参数模板:将整数参数完美转发到 lambda
- (C/C++)fscanf_s从txt文件以字符形式读取数组时缺少整数参数错误
- 切片整数参数包
- 将方法指针作为整数参数发送到C#的C 方法
- 如何根据模板两个整数参数之间的关系对模板进行部分专用化
- 模板采用返回 std::array 的整数参数的完全专业化
- 在我的C++程序中使用函数整数参数
- 具有整数参数的模板的部分专用化
- 具有两个整数参数的类的部分专用化
- X失败请求的错误:BadValue(整数参数超出操作范围)
- 在函数中创建一个大小为n的数组,其中n是函数的整数参数
- 将整数参数从 Vb6 传递到C++ dll
- 如何使用整数参数(c++)访问结构列表
- 如何将整数参数传递给shell脚本,然后shell脚本将其传递给程序
- 整数参数特殊值的模板专用化
- 将字符串转换为整数参数
- 根据模板整数参数选择一个整数类型
- 如何获取整数参数包中的第i个整数