考虑以下 C++11 程序:
#include <stdhdr1>
#include <stdhdr2>
#include <stdhdr3>
using namespace std;
#include <boost1>
#include <boost2>
#include <boost3>
int main()
{
}
wherestdhdrn
是标准库头文件,并且boostn
是 boost 头文件。
是否存在无法编译的情况?
此外,考虑到 main 中的一些额外用户代码,是否存在因打开 std 命名空间而导致的歧义(或其他错误),无法通过明确限定歧义(或错误)实体来解决?
(例如,因为 ADL 考虑了开放的 std 命名空间还是其他?)
(换句话说,可以在打开的 std 命名空间之后包含 boost 句柄吗?)