在另一个命名空间中是否可以声明全局命名空间的变量或函数?目前我的代码看起来像这样。
namespace test {
//do stuff
}
//declare global stuff
namespace test{
//continue stuff
}
这个问题的出现是因为我在命名空间内使用了#include
,但是其中一部分包含的代码需要在全局命名空间中。因此,我不能打断或编写超出我的命名空间块之外的代码。
因此,我想要:
namespace {// do stuff
//declare global stuff
//do more stuff
}
现在我的代码看起来有点像:
namespace test{
void majorfcn1();
Void majorfcn2();
#include "minorfunctions.h"
}
如果只有函数,那就没有问题。但在我的情况下,我还引入了其他一些包含文件,当然应该是要在全局空间中使用的。因此,我希望能够保留它们并将它们放置在 namespace global{}
中。
#include
-- 这会完全破坏头文件内容的抽象性(您需要知道它如何声明所有内容以及声明了什么内容才能安全地在命名空间内进行#include
)。 - Cameron