名称空间的前向声明
forward declaration of namespace
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;
}
然而,这可能不是您想要的。您仍然不能使用该名称空间中的任何类型,直到您声明它们。
相关文章:
- 在命名空间 c++ 中正确声明 extern 变量
- 在命名空间中声明变量,在 main 中定义它,使其对所有其他文件可见
- 转发声明在命名空间中不起作用的替代方法
- 在C++中,如果成员引用在其声明中初始化,为什么需要存储空间?
- C++ 17 个友元函数声明和内联命名空间
- 为什么 gcc 无法从其前向声明中检测到友元类命名空间?
- 声明"使用命名空间 C;"对于证明 [namespace.udir]/3 中的示例中显示的结果至关重
- 命名空间内C++变量声明
- 在命名空间中声明变量
- C++ 没有在命名空间外部声明的类主体的类
- 如何在命名空间中声明外部全局,然后定义它?
- 在 c++ 中在运行时声明对命名空间的引用
- 警告定义朋友操作员在名称空间内声明
- 声明是否有可能逃脱其封闭的名称空间
- 有没有办法转发声明命名空间或只是提前使其可见
- 声明方法时没有名称空间,也没有对C 作用的方法的对象
- C 无法解释的类“尚未声明”错误,这是由于名称空间而导致的
- 如何在不同的命名空间中使用双重声明的 extern "C"函数进行 clang 构建(如 msvc 和 gcc)
- 在同一命名空间中声明变量和函数是否出错?[C++]
- c++等价于for calloc和为数组变量声明空间