c ++:使用声明中的逗号分隔列表

时间:2017-12-13 15:42:43

标签: c++ using using-declaration

为什么在c ++的using声明语句中使用逗号分隔列表是不好的做法?

例如

using std::cout;
using std::cin;
using std::endl;

被认为是比

更好的代码
using std::cout,std::cin,std::endl;

如果代码包含逗号分隔的使用声明列表,则某些编译器(例如gcc)甚至会发出警告。

当然,最佳做法是使用标识符的完全限定名称。

2 个答案:

答案 0 :(得分:3)

cppreference所述,表格

  

使用声明者列表;

只能从C ++ 17开始提供。

如果您已阅读警告,您的编译器可能会告诉您这个!

答案 1 :(得分:0)

从另一方面接近,拒绝水平列表的理由:

  1. using std::cout;在屏幕上大约一英寸宽。这允许眼睛以非常小的水平移动读取它,并且到达下一行的垂直距离比必须读取一个项目然后下一个和下一个项目短得多......大多数人可以更快地读取垂直滚动。

  2. 接下来,垂直排列,您可以更容易识别图案。对于大多数读者来说,流氓stb::std::的阵容中会更加突出。不多,但它可能会为你节省编译,在某些情况下编译可能需要很长时间。

  3. 如果文件差异输出在其自己的行上,则更容易在文件差异输出中选择插入,删除或更改使用声明。如果所有变化都被埋没在线,你必须扫描两条线并运行Mark 1 Eyeball diff以找出发生了什么变化,而Mark 1 Eyeball和人类CPU真的很难做到这一点。