一行中多个 "using namespace"?

19 浏览
0 Comments

一行中多个 "using namespace"?

我搜索了但找不到相关的问题。\n请纠正我如果我错了。\n在我的项目中我使用以下代码:\n

using namespace std;
using namespace sf;

\n我希望它变成下面这样。\n

using namespace std, sf;

\n提前感谢!

0
0 Comments

问题出现的原因是当前的C++标准不支持在一行中使用多个"using namespace"的语法。此外,导入整个命名空间是不被建议的(至少不在头文件中),你可以向C++标准委员会发送请求,看看他们是否愿意支持这种语法。

一般的建议是,你应该只有两种选择:

  • 要么在你的翻译单元中指定你正在使用的具体类(以节省输入),如using std::cout = co;
  • 要么通过在所有地方明确使用完全限定的标识符(如std::coutstd::endl等)来使一切清晰明了。

后一种方式是最可读和最好的方式。

0
0 Comments

在C++中,使用using namespace语句可以减少代码中的命名冲突,使得可以直接使用命名空间中的成员而不需要添加命名空间前缀。然而,在一行中声明多个using namespace是不被支持的,因此需要分别声明多个using语句。

尽管如此,通常最好避免在代码中声明using namespace,特别是在头文件中,而是尽量在最内层的作用域中声明,以避免在太多作用域中引入不需要的符号。

如果需要在一行中声明多个using namespace,可以按照以下方法进行解决:

using namespace std;
using namespace SomeNamespace;

上述代码将分别声明了两个using语句,分别引入了std命名空间和SomeNamespace命名空间。

,虽然在一行中声明多个using namespace是不被支持的,但可以通过分别声明多个using语句来实现同样的效果。然而,最好的做法是避免在代码中声明using namespace,以免引入不必要的命名冲突。

0