【发布时间】:2011-05-20 13:41:48
【问题描述】:
有令人信服的论点againstusing namespace std,那么为什么将它引入到语言中呢? using namespace 不会破坏命名空间的目的吗?我为什么要写using namespace?有什么我不知道的问题被using namespace 优雅地解决了,也许是using std::swap 成语或类似的东西?
【问题讨论】:
-
少打字是一个非常诱人的论点......
-
使用 'using' 的概念是围绕或反对命名空间,但当你需要它时它就在那里。
-
另见 Herb Sutter 的 "Migrating to Namespaces."
-
@James:我有点不同意那篇文章 :) 由于在语言中引入了命名空间,现有代码从未中断,因为同时更改了头文件的命名约定。因此,如果您的旧代码使用
#include <iostream.h>,那么cin和cout在没有std::资格的情况下工作得很好。所以迁移代码绝对不是我的理由。 -
@Fred:所以,忽略短期解决方案。 “完全避免使用指令,尤其是在头文件中”和“永远不要在头文件中使用声明编写命名空间”的正确长期解决方案是极好的建议。
标签: c++ namespaces using-directives