【发布时间】:2011-05-06 03:21:41
【问题描述】:
虽然 C++ 标准库是非常通用且高效的库,但其接口的一些小细节似乎令人失望。
算法不能直接使用容器。
std::sort(myvec.begin(), myvec.end());而不是std::sort(myvec);(我真的不明白为什么没有从一开始就提供第二种形式)大多数接受字符串的函数成员需要
const char *而不是const std::string&。 (C++字符串是std::string,至少应该有重载)
据我所知,这两个小缺陷应该在c++0x 标准中得到纠正。
您还能看到其他这些小缺陷吗?
为什么你认为这是一个缺陷?
有一天会改正吗?
(当然这里的争论不是支持或反对泛型编程,实际上也不是关于一般设计问题。只是缺少重载,缺少算法版本,不方便的接口......)
【问题讨论】:
-
应该是CW,或者关闭。
-
@sbi: 是this is what you're looking for吗?
-
copy_if和iota丢失。如果这个问题是一个有用的资源,也许它应该开始列出对 C++0x 中的标准容器和算法所做的更改,而不是邀请数十或数百个答案列出每个一。 -
@Alf:这是对 CW 机制的最新更改,AFAIK 仅通过对元数据问题的编辑“宣布”,大多数人根本不会阅读,更不用说那个确切的问题。我不确定用户阅读整个元数据的频率是多少,以确保他们最喜欢的功能没有消失,但人们了解此类功能更改的方式不可避免地是尝试使用它们,或谈论他们,并被一个碰巧知道的人告诉他们已经走了:-)
-
@Alf:我认为 SO 更倾向于实用性。我不认为我同意这种趋势,但在我看来,如果 Ugo 真的在设计一种语言,那么他可以提出有关语言设计的问题。所以有一定的推理空间。然而,关于 C++(或任何其他现有系统)可以/应该如何改进(对于“改进”的价值)的推测性讨论是不受欢迎的。而且我不认为这种变化仅仅是因为 C++0x 已经击中 FCD ;-) 而且我不太喜欢 meta 的工作方式,但它比 SO 使用 uservoice 时要好。