以下代码将导致g ++ 4.4中的编译错误:
// File test.cpp
namespace A
{
#include <iostream>
}
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我有这个要求,因为一些第三方库没有名称空间受保护,如果我直接包含这些标题,我的名称空间就会受到污染.
因此,我尝试为这些库创建名称空间,但如果库包含一些"标准标题",则上述方法将失败.
有人可以帮忙吗?
谢谢!
我相信17.4.2.1 [lib.using.headers]禁止在命名空间中包含标准库头:
翻译单位应仅在任何外部声明或定义之外包括标题,并且在首次提及其在该翻译单元中声明或首先定义的任何实体之前,应在词汇上包括标题.
除了向图书馆作者提交请求之外,我认为你无能为力.
| 归档时间: |
|
| 查看次数: |
928 次 |
| 最近记录: |