在使用命名空间std之前,需要先定义命名空间std。

13

我在许多地方看到下面的语法,即在使用STL类时未明确限定其名称空间为std::。那么初始的namespace std {}有什么优点呢?为什么不能只使用using namespace std;

namespace std {}
using namespace std;

3
@Steephen:什么?怎么回事?就我所知,“重复”的帖子完全没有回答OP的问题。 - Benjamin Lindley
@BenjaminLindley 您是正确的,我没有仔细阅读问题。撤销了我的关闭投票。 - Steephen
1个回答

10

namespace std {} 仅仅是声明了一个命名空间,这样编译器就知道它的存在了,而使用 using namespace std; 就不会导致出错。

稍后在代码中,从 std:: 中提取的内容可以被 #include 进来,并且它们可以自动地被引用而不需要前缀 std::


4
这意味着包含文件要放在using指令之后,这是非常糟糕的做法 - 它可能会改变那些头文件中代码的含义! - Arne Mertz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接