为什么C ++ 17在模板中有两个关键字(class和typename)用于相同的目的

时间:2016-10-15 11:56:13

标签: c++ class c++17

  

模板模板参数声明只能使用关键字class   而不是在C ++ 17之前输入。

这是直到C ++ 17之间的区别。因为C ++ 17,两者都是相同的。

那么为什么C ++ 17不推荐使用模板参数和类型参数声明中的一个关键字(class)?

因为班级有两个不同的含义

1 个答案:

答案 0 :(得分:0)

这是一个主观问题。就个人而言,我倾向于同意class此处 的格式很差,typename应该是唯一允许的关键字。

但这只是我的意见。或许class的这种用法将来会被弃用;也许有足够的人喜欢以任何理由写class,但它不会成为。

最终,影响C ++并不是最紧迫的问题,这可能是委员会最终放松限制而非增加新限制的真正原因。

如果您强烈认为应该弃用class的这种用法,请随时向工作组提出建议!

顺便说一下,你引用的static的用法在C ++ 11中实际上是不常用的。