名称空间的前向声明

forward declaration of namespace

本文关键字:声明 空间      更新时间:2023-10-16
namespace CounterNameSpace {
    int upperbound;
    int lowerbound;
    using namespace NS;//Error
}
namespace NS {
int i;
}
// ...
namespace NS {
int j;
}
在上面的例子中,

显示了一个错误。错误C2871: 'NS':名称空间不存在我知道如果我在反命名空间问题解决之前定义NS。但是我只是想知道c++中是否存在像名称空间前向声明这样的东西,这样就可以在不定义NS的情况下解决上述问题。

没有人说名称空间需要立即包含所有内容:

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

然而,这可能不是您想要的。您仍然不能使用该名称空间中的任何类型,直到您声明它们。