C ++标准库命名不一致

时间:2018-03-01 15:16:19

标签: c++ naming-conventions naming standard-library

我个人不喜欢snake_case命名约定但我接受了它因为C ++标准库。真正令我生气的是一些功能的命名不一致。 我可以忍受来自C库的愚蠢命名,如:

  • tolower() - 请注意tolower应使用下划线分隔。
  • srand() - 当有很多较长的名字时,为什么有人会缩写seed
  • fopen() - 缩写file,真的吗?

然而,C ++是一种较新的语言,应该避免这种愚蠢的缩写和不一致,尤其是当std::uniform_int_distribution等名称存在时。这看起来非常明显,但正如我所看到的,标准库开发人员并非如此。

我很确定,还有其他一些具有相同不一致性的例子。我没有提到可以命名为std::file_stream的{​​{3}},因为我已经习惯了,但仍然......

最后......不要以基于意见为基础提出这个问题,我的问题是:是否有任何记录的理由以这种方式缩写名称或者不要在单词之间加上下划线一些案例?我愚蠢还是真的很奇怪?这真的让名字更难记住。

1 个答案:

答案 0 :(得分:1)

原因:人们使用的语言有一种,而不是一个人发明了一种新语言,并且仍然掌握了旧的惯例,那么语言就会发展。

所以你有不一致的地方。

第一个C ++与实际语言非常不同。早期的C ++使用了很多C标准库,因此它应该与这样的库一致。

通常,优秀的语言设计师并不是命名约定(和结构)的最佳人选。他们关心语言,而不是关于编码约定的愚蠢讨论(看看批评者对python,因为它强迫以某种方式写[空间标识是合成文本])。

据我所知,从第1天起,只有斯威夫特厌倦了一致的名称约定。