【问题标题】:C++0x implementation guesstimates?C++0x 实现猜测?
【发布时间】:2009-01-24 06:20:38
【问题描述】:

C++0x 标准即将完成。到目前为止,我已经涉足 C++,但避免彻底学习它,因为它似乎缺少许多我在其他语言中被宠坏的现代特性。但是,我会对 C++0x 非常感兴趣,它解决了我的很多抱怨。任何猜测,在标准被批准后,主要编译器供应商需要多长时间才能提供相当完整的、生产质量的实现?它会很快发生以扭转 C++ 流行度的下降,还是太少、太晚了?你相信 C++0x 会在几年内成为“C++”,还是你相信大多数人会在实践中坚持早期的标准,而 C++0x 会有点像一个混蛋继子,有点像C99?

【问题讨论】:

    标签: c++ programming-languages language-design legacy


    【解决方案1】:

    我认为没有理由不采用 C++0x。 C++ 社区比 C 更具前瞻性。C 一直被认为是一种“可移植的汇编语言”,因此使用它的人对花哨的新功能并不是非常感兴趣。 C++ 的范围更广,而且我还没有听说过有一个 C++ 程序员期待 0x。 (这也是我的印象,C++ 社区更加“严格”,并且真的不想超出标准进入未定义的行为,这意味着您选择 C++03 或 C++0X 而不是半实现混合。C 程序员往往对此更加放松,并且似乎乐于使用仅混合了几个 C99 特性和标头的 C89)

    不过,微软至少需要几年的时间才能赶上。 Visual Studio 2010 将支持少数 C++0x 功能(lambdas、decltype 和其他一些功能),但绝大多数会受到支持。我们将不得不等待 VS2012 或任何下一个版本最终得到一些完整的支持。

    使用 GCC/G++,情况要好得多,因为大部分标准已经在那里实现(标准委员会不喜欢采用尚未在真实编译器中实现和测试的特性,并且GCC fork 经常用于此)

    但可能仍需要一些时间才能稳定并投入生产。

    关于 C++ 的“流行度下降”,我并没有真正看到。我认为过去几年 C++ 的流行度并没有显着下降。当然,RAD 开发人员已经跳槽到 .NET、Python 或其他语言或平台。但是在今天使用 C++ 的地方,并没有多少可行的替代方案,也没有理由让它的流行度下降。

    【讨论】:

      【解决方案2】:

      我不知道其他供应商,但从what 我有seen,Microsoft 计划在 Visual C++ 2010 中包含四个 C++0x 语言功能:

      1. rvalue references
      2. auto
      3. lambdas
      4. static assert

      虽然这是一小部分 C++0x 特性,但它们很重要。有些将使程序员能够编写更紧凑(自动、lambda)和无错误的代码。一些(如右值引用)使库更有效。微软喜欢 lambdas 作为enabler for parallel computing

      恕我直言:单独使用auto 将使模板的使用变得更加容易,以至于更多的程序员会这样做。希望这会增加微软和所有供应商对更多 C++0x 功能的需求。

      微软也将更新他们的 C++ 标准库实现,但我不知道细节。我相信他们正在修改一些容器类以利用右值引用移动语义。而且我相信他们包括更多的 TR1。

      【讨论】:

      • 你会希望他们也包括他们今天发布的 TR1 东西。
      • 当然是这样,我的帖子是关于语言特性的。我将进行编辑以使这一点更清楚。
      • 您的编辑是正确的:TR1 库添加已添加到 std 命名空间,并且容器已更新以支持移动语义。
      【解决方案3】:

      一些实现已经在通往 C++0x 的路上:(gcc)。我的直觉是 C++0x 支持将很快在主要编译器中可用。但是仍然存在大量必须维护的遗留代码。

      【讨论】:

        【解决方案4】:

        较新版本的 gcc 已经支持许多 C++0x 功能:http://gcc.gnu.org/projects/cxx0x.html

        【讨论】:

          【解决方案5】:

          Microsoft 将在今年晚些时候在 Visual Studio 2010 中包含 C++0x 支持(社区技术预览已经可用)。

          我认为它不会很快成为“C++”,但某些人会选择在代码中有意义的地方添加部分新语法。

          这些天我不怎么做 C++,但我与之交谈的人要么喜欢它,要么觉得 C++ 的美在于他们可以控制,如果他们想要一种具有所有这些额外功能的语言,他们' d 使用 C#/Java。

          【讨论】:

          • 不,Microsoft 将包含几个 0x 功能。粗略估计,我们谈论的是 10% 的新 c++0x 内容。
          • ...当然它可能只占功能列表 jalf 的 10%,但对于普通 C++ 程序员来说,它是“价值”的约 70%。
          猜你喜欢
          • 2010-10-06
          • 2011-12-30
          • 2011-08-22
          • 1970-01-01
          • 2011-06-19
          • 1970-01-01
          • 2011-01-26
          • 2011-03-08
          • 1970-01-01
          相关资源
          最近更新 更多