考虑以下程序。它是否符合 c++ 标准(需要参考标准的相关部分):
namespace X { extern int i; }
namespace N { using X::i; }
int N::i = 1;
int main() {}
对于不同的编译器,我得到不同的结果。我试图弄清楚我应该为哪个编译器提交错误报告:
Clang:给出以下编译器错误:命名空间“N”中没有名为“i”的成员
GCC 和 Visual C++ 编译它没有错误。
为了比较,以下给出了所有三个编译器的编译器错误:
namespace X { void f(); }
namespace N { using X::f; }
void N::f() {};
int main() {}