2009-12-16 87 views
7

什么是了解新的C++ 0x功能的好地方?我知道他们可能还没有完全敲定,但这将是一个好的开始。另外,哪些编译器目前支持它们?了解C++ 0x功能

+0

部分重复:http://stackoverflow.com/questions/200237/where-can-i-learn-mor e-about-c0x。它没有提到编译器的支持。 – Naveen 2009-12-16 08:11:16

回答

11

了解它的一个简单而有趣的方法是观看​​。另一个很好的来源是Bjarne Stroutstrup的C++0x FAQ,它涵盖了大部分新功能。

0

不重复的,但你可以得到一些答案here 有两个链接草稿和正在实施的C编译器的列表++ [0 | 1] X功能

0

你当然应该知道官方工作组网址为ISO/IEC JTC1/SC22/WG21。这有委员会的信息,所以它包含正在开发的官方文件。但是,并不一定是了解各种C++ 0x建议思想背景的最佳位置。另一个地方是comp.std.c++新闻组;这通常对可能的特征细节进行深奥的讨论。

0

这不是真的关于语言功能,但你可能想看看TR1。这是一个最类似于C++ 0x的库的规范。

实际上有它的实现,所以你现在可以使用它(例如微软的VC++ implementation)。

3

对于VC++ 2010,这里列出了那些东西。

语言(其中的一些人在VC2008已经作为语言扩展):

  • lambda表达式
  • static_assert
  • autodecltype
  • 右值引用(T&&
  • nullptr
  • extern template(注:不export
  • long long
  • 没有在嵌套模板收盘>之间所需的空间(例如vector<vector<int>>是合法的)

库:

  • <stdint.h>/<cstdint>和范围内的所有类型定义(最后)
  • std::unique_ptrstd::shared_ptrstd::weak_ptr
  • std::forward_list
  • std::tuple和相关的东西! (例如tie,get ...)
  • <system_error>
  • <type_index>

什么是有:

  • 初始化列表(奇怪的是,头<initializer_list>是存在的,包含了各自类型,但似乎没有在beta 2中支持它的语言)
  • variadic模板
  • constexpr
  • 范围基于for(虽然语言扩展for each,其中大部分是相似的,保持)
  • 均匀初始化语法{}
  • 替代函数的语法(即模拟了lambda表达式)
  • 构造委托
  • 相同-line成员字段初始值设定项
  • [[override]](但override仍作为语言扩展名)
  • 上构件
  • enum class
  • using类型别名和模板using
  • char16_tchar32_t,以及相应的字符串文字
  • =default=delete
  • 原料和用户定义的字符串文字上实例
  • sizeof没有对象实例的字段
  • std::thread和朋友
+0

链接到源代码会很棒! – csl 2009-12-16 09:15:39

+0

http://msdn.microsoft.com/en-us/library/dd465215(VS.100).aspx涵盖语言功能。还有一系列的博客文章,尽管它们现在有些过时(例如,即使它现在在那里,它们声称不支持'nullptr'支持):http://blogs.msdn.com/vcblog/archive/2008/10 /28/lambdas-auto-and-static-assert-c-0x-features-in-vc10-part-1.aspx http://blogs.msdn.com/vcblog/archive/2009/02/03/rvalue-引用-c-0x-features-in-vc10-part-2.aspx http://blogs.msdn.com/vcblog/archive/2009/04/22/decltype-c-0x-features-in-vc10-part -3。aspx – 2009-12-16 09:49:29

+0

至于图书馆,我找不到任何明确的文件覆盖此。我通过查看我的VS2010 beta 2安装中提供的内容来编译上面的列表。还要注意,上面的列表不包含TR1中存在的库特性,并且它只是从C++ 0x的'std :: tr1 ::'转换为'std ::'(VC2010支持这两种特性命名空间)。 – 2009-12-16 09:50:43

3

对于编译器支持,你可以看看这里:C++0xCompilerSupport

编译器:

PAPER(S)
HP ACC
EDG ECCP
GCC
英特尔C++
MSVC
IBM XLC++
太阳C++
C++ Builder的2009/10