"namespace std {}"在"using namespace std;"之前

Pau*_*zen 13 c++ namespaces

我在很多地方看到了下面的语法,其中使用了STL类而没有明确限定它们std::.初始的优点是namespace std {}什么?为什么不放using namespace std;

namespace std {}
using namespace std;
Run Code Online (Sandbox Code Playgroud)

eml*_*lai 10

namespace std {}简单地声明命名空间,以便编译器知道它并且执行操作using namespace std;不会导致错误.

稍后在代码中的东西std::可以是#included,它们可以在没有std::前缀的情况下自动引用.

  • 这意味着包含在using指令之后,这是一件非常糟糕的事情 - 它可以改变那些头文件中代码的含义! (4认同)