【发布时间】:2013-03-12 18:47:45
【问题描述】:
在第 14 章(模板)的 C++ 标准中,它指代具有多个不同名称的模板参数,具体取决于它们的上下文。
非类型参数
template<int N>
class foo {};
模板参数
template<typename T>
class bar {};
类型参数
?????
在下面的这句话中,它看起来像是三个不同的东西,但是我无法弄清楚 type-parameter 是什么?
14.1 模板参数[temp.param]
9 ... 可以为任何类型的模板参数 (type, non-type, template) 指定默认模板参数,该模板参数不是模板参数包 (14.5.3) . ...
您可以在此处看到它具有三个不同的模板参数名称。如果 template-parameter 是其他两个的概括,那么为什么将其包含在上面的列表中。
然后在第 14.1.2 节中将它们称为 type 和 non-type,并将模板参数称为泛化。
那是什么?有人可以解释吗?
【问题讨论】:
标签: c++ templates language-lawyer