C ++ 0x实现猜测?

时间:2009-01-24 06:20:39

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

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

5 个答案:

答案 0 :(得分:16)

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

然而,至少在微软赶上之前需要几年的时间。 Visual Studio 2010将支持少量的C ++ 0x功能(lambdas,decltype和其他几个),但绝大多数都不支持 。我们将不得不等待VS2012或者下一个版本的最终版本,以获得一些完整的支持。

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

但它可能仍需要一些时间来保持稳定和生产准备。

关于C ++的“人气下降”,我并没有真正看到它。我认为C ++在过去几年中的受欢迎程度并不高。当然,RAD开发人员已经开始使用.NET,Python或其他语言或平台。但是,在今天使用C ++的地方,没有太多可行的替代方案,也没有理由为什么它应该不受欢迎。

答案 1 :(得分:3)

我不了解其他供应商,但是从whatseen,Microsoft计划在Visual C ++ 2010中包含四个C ++ 0x语言功能:

  1. rvalue references
  2. auto
  3. lambdas
  4. static assert
  5. 虽然这是一小组C ++ 0x功能,但它们很重要。有些将使程序员能够编写更紧凑(auto,lambdas)和无错代码。一些(如rvalue引用)使库更有效。微软喜欢lambdas为enabler for parallel computing

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

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

答案 2 :(得分:2)

一些实现已经在前往C ++ 0x:gcc)。我的直觉说C ++ 0x支持将很快在主要编译器中提供;但是仍然存在大量遗留代码,必须予以维护。

答案 3 :(得分:2)

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

答案 4 :(得分:0)

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

我认为它不会很快成为“C ++”,而是某些人会选择在其代码中添加部分新语法。

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