8
namespace CounterNameSpace {
    int upperbound;
    int lowerbound;
    using namespace NS;//Error
}
namespace NS {
int i;
}
// ...
namespace NS {
int j;
}

在上述情况下,它显示一个错误。错误 C2871:“NS”:不存在具有此名称的命名空间我知道我是否在反命名空间问题得到解决之前定义了 NS。但是只想知道c++中是否存在诸如命名空间前向声明之类的东西。这样就可以解决上述问题而无需在counternamespace之前定义NS。请帮忙 。

4

1 回答 1

13

没有什么说命名空间需要它的所有内容:

namespace NS {}
namespace CounterNameSpace {
    int upperbound;
    int lowerbound;
    using namespace NS;
}
namespace NS {
int i;
}

但是,这可能无法满足您的要求。在您声明它们之前,您仍然无法使用该命名空间中的任何类型。

于 2012-12-31T08:10:59.660 回答