请考虑以下程序。根据C++标准是它良好的成立(该标准的相关部分引用所需的):尝试通过使用声明来定义名称空间成员
namespace X { extern int i; }
namespace N { using X::i; }
int N::i = 1;
int main() {}
我得到不同的编译器不同的结果。我试图找出什么编译器我应该立案的bug报告:
锵:提供了以下编译器错误:没有名为“我”在命名空间“N”
GCC成员和Visual C++编译它没有错误。
为便于比较,下面给出编译错误,与所有三个编译器:
namespace X { void f(); }
namespace N { using X::f; }
void N::f() {};
int main() {}
有趣,VS2013编译,但IntelliSence说''错误:命名空间“N”没有真正的成员“我”# – AlexD
我想答案在这里:[链接](http://stackoverflow.com/questions/6175705/scope-of-using-declaration-within-a-namespace) – Jorj
@Supremum你可以从https://isocpp.org/std/the-standard获得自己的C++标准副本。 – Coder