为什么使用标准类型作为模板参数?
Why use standard types as template parameters?
我目前正在学习C++,我已经到了我正在阅读的书中关于模板的章节。
他们刚刚展示了一个使用整数作为模板参数的示例,它看起来像这样:
template<class T, int N> class array{...}
在示例中,N 用于确定数组的大小,但我的问题是,如果您也可以将大小作为构造函数的参数传递,您为什么要这样做?
构造函数的参数可以在运行时传递,即你不需要在编译时知道它的值。但是,模板参数的值必须在编译时知道。
如果要静态分配数组,则必须在编译时知道其大小。因此,使用模板参数来确定大小是合适的。
相关文章:
- 标准::向量声明中使用的模板参数
- 如何使用模板化标准::函数作为参数?
- 标准::enable_if 和标准::is_arithmetic 作为模板参数的问题
- 多维标准::数组的可变参数模板
- 在标准中,模板参数的语法在哪里定义,例如,'std::function<int(char)>'?
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- 参数归纳与标准::变体
- 可变参数模板和标准::函数
- 从常量字符*、字符*参数到标准::字符串的直接转换接口
- 标准::原子::compare_exchange与两个memory_order参数一起使用的真实示例
- 标准是否阻止在可变参数模板中使用足够小的文本值缩小文本转换范围
- 标准::basic_ostream参数
- 删除 Netbeans 中的标准运行参数
- C++11:标准::result_of<>模板参数与标准::函数<>
- 为什么 C++17 标准没有带来部分类模板参数扣除?
- 依赖的非类型参数包:标准怎么说?
- 为什么使用标准类型作为模板参数?
- 为什么C++标准中没有 std::basic_string 类的构造函数,其参数类型为 std::string_view
- C++标准是否保证失败的插入到关联容器中不会修改 rvalue-reference 参数?
- 可变参数列表vs单一模板参数:标准怎么说?