【发布时间】:2011-10-14 01:02:51
【问题描述】:
我最近在一个 C++ 项目的源文件中看到了这段代码:
using namespace std;
#include <iostream>
完全忽略using namespace std 是否是个好主意的所有问题,上面的代码是否合法?这两行之前的文件中没有代码。
我原以为这不会编译,因为直到 #include <iostream> 指令将它包含到文件中之前,namespace std 尚未在范围内声明,但使用项目的构建系统编译就好了.如果有人有指向规范相关部分的链接,那将不胜感激。
【问题讨论】:
-
这段代码是写在源文件还是头文件中?也许它被另一个声明命名空间
std的文件包含。 -
这是在源文件中,而不是在头文件中。这是一个很好的澄清点!
-
clang++ 给出警告:using 指令引用隐式定义的命名空间'std';
标签: c++ language-lawyer using-directives