1

来自Dobbs 博士

概念本应成为 C++0x 的核心新特性

即使在削减“概念”之后,下一个 C++ 标准也可能会延迟。可悲的是,不会有 C++0x(除非您计算 C++03 中的小修正)。我们必须等待 C++1x,并希望 'x' 是一个低位数字。有希望是因为 C++1x 现在功能完整(除了一些国家标准机构有效地坚持标准正式提案中存在的某些功能的可能性)。剩下的“全部”就是解决突出的技术问题和评论的大量工作。

大约在 1997 年到 2000 年,我处于 ​​MT 和 MP 安全 C++ 编程的前沿。我们必须自己做很多事情。从那以后的 9 年里,该标准没有解决并发问题,这有点令人震惊。

那么有什么大不了的呢?

4

4 回答 4

13

不。

我不确定是什么让你认为它是。Dr.Dobbs 的文章并不暗示情况就是这样。

这是一个重大更新,这意味着需要大量工作来完善语言规范和修复错误。这既不新鲜也不令人惊讶。

ISO标准化过程需要时间。这也不是什么新鲜事。你发的那篇文章就是这么说的——有工作要做,但天没有塌下来,这是他们从现在开始做的非常基础和低风险的工作。

花了这么长时间有几个原因:

显而易见的是,他们做了很多改变,一些功能比预期的要大,不得不删减。这是不言而喻的,是造成延误的原因。

不太明显但同样重要的因素是,他们希望自 C++98 以来经过很长时间。他们希望给语言时间来稳定和成熟,获得当前语言特性的大量使用经验,并给编译器时间赶上。直到几年前,C++ 还没有准备好更新。大型商业编译器仍然一团糟,太多人仍然不适应现代 C++ 设计。

这就是为什么直到现在还没有解决多线程之类的问题。它没有在 C++98 中实现,而且他们不想在那之后过早地进行更改。

我不知道他们最初希望瞄准哪一年,但我怀疑它早于 2007 年左右。所以是的,新标准已经延迟了一点,但不是因为语言正在“崩溃”。

于 2009-07-30T06:15:59.153 回答
10

Stroustrup 是最终移除 Concepts 的选民之一。我没有看到 C++崩溃,相反,我看到 C++ 委员会正在做它的工作。半生不熟的功能不是像 C++ 这样健壮的语言的解决方案。看看 C++0x 中的内容会告诉你与你所说的相反。最后,我不介意等待永远得到好东西,而不是暂时得到好东西:)

于 2009-07-30T06:33:58.960 回答
3

不,他们只是意识到自己的责任。标准委员会的决定影响了很多人。

于 2009-07-30T06:17:25.170 回答
1

一方面我很感激他们没有重复模板出口惨败。
另一方面,同样的“责任”可能在模板发生之前就完全消灭了它们。

我认为 C++0x 表明 C++ 是一种过于成熟的语言,无法继续试验特性。新的前沿特性已经出现在其他语言中,它们更符合基本理念。

于 2009-07-30T07:01:02.430 回答