【发布时间】:2016-07-05 20:14:28
【问题描述】:
以下代码在 Visual Studio 2015 中编译(即使使用 /Za 选项)。它不能在 gcc 和 clang 上编译。
struct A
{
};
template<typename T>
struct B
{
void f()
{
}
};
template<typename T>
struct C : B<T>
{
void f()
{
}
void g()
{
B::f();
}
};
int main()
{
C<A> c;
c.g();
return 0;
}
gcc - 错误:“模板结构 B”未使用模板参数
clang - 错误:“B”不是类、命名空间或枚举
哪种编译器符合标准规范?规格有歧义吗?
编辑
我在C 中添加了f() 以获得更相关的示例。
【问题讨论】:
标签: c++ gcc visual-c++ visual-studio-2015 clang