c++ - 模板模板参数的参数会导致阴影吗?

标签 c++ templates language-lawyer template-templates shadowing

这是合法的 C++ 吗?

template <typename T, template <typename T> class>
struct S { };

Clang (3.7.1) 拒绝它,提示第二个 T 隐藏了第一个 T。 GCC 似乎并不关心它,我认为这是合理的。我认为在模板模板参数中重要的只是参数的数量。

最佳答案

没有。 [temp.local]/6 :

A template-parameter shall not be redeclared within its scope (including nested scopes).

关于c++ - 模板模板参数的参数会导致阴影吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35744299/

相关文章:

django - 在 Django 中将一个 block 放入另一个 block 中

你能设计一个简单的宏来在使用时有效地产生编译器错误吗?

c++ - Qt离线安装器和兼容的c++编译器安装

c++ - 模板循环需要 const 值

java - 速度模板 - 换行

css - 在CSS Flexbox中,为什么没有“justify-items”和“justify-self”属性?

c - 增量运算符的原子性

c++ - 用装饰器让代码更清晰?

c++ - 纹理映射到瓷砖

c++ - 从多个嵌套的 unordered_map 中提取值的模板函数