首页 文章

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

提问于
浏览
-7

模板模板参数声明只能在C 17之前使用关键字class而不能使用typename .

这是直到C 17的那些之间的差异 . 从C 17开始,两者都是相同的 .

那么为什么C 17不赞成模板参数中的一个关键字(class)和类型参数声明?

因为 class 有两个不同的含义

1 回答

  • 0

    这是一个主观问题 . 就个人而言,我倾向于同意在这里使用 class 是不好的形式,并且 typename 应该是唯一允许的关键字 .

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

    在一天结束时,这不是影响C的最紧迫问题,这可能是委员会最终放松限制而不是增加新限制的真正原因 .

    如果您强烈建议不要使用 class ,请随时向工作组提出建议!

    顺便说一句,你提到的 static 的用法在C 11中实际上是不推荐的 .

相关问题