以下程序是否符合 c++ 标准?
namespace X { class A; }
namespace Y { using X::A; class A {}; }
int main() {}
我使用不同的编译器得到不同的结果:
- gcc 编译它没有错误。
- visual c++ 给出错误 C2888: 'X::A': symbol cannot be defined within namespace 'Y'
我在 c++ 标准中没有发现我的程序违反的任何规则。
如果程序格式正确,为什么Visual Studio会报错?
如果程序格式不正确,它违反了 c++ 标准中的哪些规则,为什么 gcc 不给出错误?
我不是想让我的程序编译。我只是想找出它是否符合 c++ 标准,以及为什么我测试的两个编译器的行为不同。