7
这是合法的C++吗?模板模板参数的参数是否会导致阴影?
template <typename T, template <typename T> class>
struct S { };
锵(3.7.1)拒绝它,抱怨第二T
阴影第一T
。海湾合作委员会似乎不关心它,我认为这是合理的。我认为这只是模板模板参数中涉及的参数数量。
- http://goo.gl/51bHVG(gcc.godbolt.org)
为什么你需要使用'T'两次?如果你想在第二个模板中使用'T',你可以编写'template class>' –
@DavidHaim这不是强制性的,但是当第一个参数被赋予第二个参数时模板模板,为嵌套模板参数使用相同(或至少相似)名称是有意义的。你的建议很有趣,我从来没有试图给模板模板参数指定一个默认参数。与'template class>'相比,它实现了什么? –
nodakai
我想知道在帖子标题中搜索和摧毁标签词的人的驱动动机是什么?他们可能同样热衷于将'NULL'替换为'nullptr'? – nodakai