0

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

例如

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

被认为比代码更好

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

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

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

4

2 回答 2

6

cppreference中所述,表单

使用声明器列表

仅从 C++17 开始可用。

如果您阅读了警告,您的编译器可能会告诉您这一点!

于 2017-12-13T15:49:27.733 回答
1

从另一边走近,不赞成横向列表的原因:

  1. using std::cout;在我的屏幕上大约有一英寸宽。这使得眼睛只需很少的水平移动就可以阅读它,并且到下一行的垂直距离比阅读一个项目然后下一个项目要短得多......大多数人可以更快地阅读垂直滚动。

  2. 接下来,垂直排列,您往往会得到更容易识别的模式。对于大多数读者来说,流氓stb::将在 s 的阵容中脱颖而出。std::不多,但它可能会为您节省编译时间,并且在某些情况下编译可能需要很长时间。

  3. 插入、删除或更改 using 声明将更容易在文件差异输出中挑选出来,如果它在自己的行上。如果更改全部在线隐藏,您必须扫描两条线并运行 Mark 1 Eyeball diff 以找出更改的内容,而 Mark 1 Eyeball 和人类 CPU 真的很擅长这样做。

于 2017-12-13T16:41:53.800 回答