What is a good place to learn about the new C++ 0x features? I understand that they may not have been fully finalized yet but it would be nice to get a head start. Also, what compilers currently support them?
-
Partial Duplicate: http://stackoverflow.com/questions/200237/where-can-i-learn-more-about-c0x . It doesn't talk about the compiler support. – Naveen Dec 16 '09 at 08:11
-
Not a duplicate but you could get some answers [here](https://stackoverflow.com/questions/226061/c0x-when) There are both links to drafts and a list of compilers that are implementing C++[0|1]x features – Schildmeijer Dec 16 '09 at 08:08
5 Answers
An easy and fun way to learn about it is to watch the C++0x Overview Google Techtalk. Another good source is Bjarne Stroutstrup's C++0x FAQ which covers a huge portion of the new features.

- 93,612
- 16
- 138
- 200
For VC++2010, here's the list of things that will be there.
Language (some of these were in VC2008 already as language extensions):
- lambdas
static_assert
auto
anddecltype
- rvalue references (
T&&
) nullptr
extern template
(note: notexport
!)long long
- no space required between closing
>
in nested templates (e.g.vector<vector<int>>
is legal)
Libraries:
<stdint.h>
/<cstdint>
and all the typedefs within (at last!)std::unique_ptr
,std::shared_ptr
andstd::weak_ptr
std::forward_list
std::tuple
and associated things (e.g.tie
,get
...)<system_error>
<type_index>
What is NOT there:
- initializer lists (curiously enough, header
<initializer_list>
is there and contains the respective type, but there seems to be no language support for it in beta 2) - variadic templates
constexpr
- range-based
for
(though language extensionfor each
, which is mostly similar, remains) - uniform initialization syntax
{}
- alternative function syntax (that mimicks lambdas)
- constructor delegation
- same-line member field initializers
[[override]]
(butoverride
remains as a language extension)=default
and=delete
on membersenum class
using
for type aliases, and templateusing
char16_t
andchar32_t
, and the corresponding string literals- raw and user-defined string literals
sizeof
on instance fields without object instancestd::thread
and friends

- 99,783
- 25
- 219
- 289
-
-
http://msdn.microsoft.com/en-us/library/dd465215(VS.100).aspx covers language features. There's also a series of blog posts, though they're somewhat outdated now (e.g. they claim no `nullptr` support, even though it is now there): 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-references-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 – Pavel Minaev Dec 16 '09 at 09:49
-
As for the library, I can't find any definite document covering this. I compiled the list above by looking at what is provided in my VS2010 beta 2 install. Also note that the list above doesn't include library features that were present in TR1, and that were simply moved from `std::tr1::` to `std::` for C++0x (VC2010 supports such features in both namespaces). – Pavel Minaev Dec 16 '09 at 09:50
For compiler support you can look here : C++0xCompilerSupport.
Compilers:
PAPER(S)
HP aCC
EDG eccp
gcc
Intel C++
MSVC
IBM XLC++
Sun C++
C++ Builder 2009/10

- 5,970
- 4
- 28
- 37
You should certainly know about the official working group web site for ISO/IEC JTC1/SC22/WG21. This has the committee information, so it contains the official documents that are under development. However, it is not necessarily the best place to learn about the background ideas behind the various suggested ideas for C++0x.
Another place to look is the comp.std.c++ news group; this often has esoteric discussions of the minutiae of possible features.

- 730,956
- 141
- 904
- 1,278
This is not really about the language features but you might want to take a look at TR1. It's a specification of libraries that will most likley make it into C++0x.
There are actual implementations for it so you can play with it right now (for example a VC++ implementation by Microsoft).

- 4,728
- 5
- 29
- 28