基本上,我正在使用以下格式提供的一些头文件:

#include <iostream>

using namespace std;

class bar
{
public:
    void printSomething(void)
    {
        cout << "This is an example." << endl;
    }
}

我的问题是,由于我无法修改提供的 header ,如何去除文件中的 std 命名空间并返回到默认的全局命名空间?我尝试过“using namespace ::;”和“using namespace ;”,但编译器对其中任何一个都不满意。关于如何强制使用命名空间进行清理的任何想法?

最佳答案

你不能。这就是 using namespace 子句如此难看的原因。不过,您可以将这些 header 包含在另一个命名空间中:

namespace bleh {
    #include "library_that_uses_evul_using_namespace.h"
}

这只会污染 bleh 命名空间。

关于c++ - 是否可以恢复到 "default"全局命名空间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13851751/

10-11 22:48
查看更多