问题描述
请考虑以下c ++程序:
class A
{
protected:
int x;
};
template<typename X>
using B = A;
template<typename T>
class C : public B<T>
{
public:
void f()
{
x = 0;
}
};
int main()
{
}
在使用-std=c++17 -pedantic-errors
作为编译选项的clang和gcc进行编译时,它们的行为有所不同:Clang编译没有任何错误,但gcc给出了有关无法查找标识符x
的编译错误。
在这种情况下,c ++标准怎么说?是否允许两种行为,或者其中一种编译器在这种情况下有错误?
编译器资源管理器链接:https://godbolt.org/z/EYvYrr
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)