Thursday, July 22, 2010

Updated C++0x Feature Availability Information

Today I downloaded the TDM distribution of gcc 4.5 for Windows and played around with it a bit.  Part of that playing around including cursory checks to see what new features of C++0x were supported, and I was pleased to see that there were quite a few, including lambdas, raw string literals, and new STL algorithms like all_of/any_of/none_of.  I updated my summary of C++0x feature availability with the new information, and as long as I was at it, I also added a link to C++0x support in Clang, as I'd happened across that page a couple of days ago.

Gcc 4.4 already had a lot of C++0x support, and in conjunction with MSVC 10, which also offers many C++0x features, it was already possible to experiment with lots of C++0x, but with the introduction of gcc 4.5, not only do we have even more of C++0x to play with, but, thanks to gcc's support for lambdas, writing portable C++0x code is now easier than ever.

If you find the revised C++0x feature availability table useful, please spread the word about it.  If you find errors in it, please let me know about them.  Either way, have fun with C++0x!

Scott

PS - Even if you're familiar with Gnu's summary of C++0x support in gcc 4.5, you might want to take a look at my table, because Gnu and I break things down differently.  Gnu's table, for example, makes no mention of alignof, but my table includes it as a line item, which is why I was motivated to see if gcc 4.5 supports it.  It does!

2 comments:

Anonymous said...

Thanks for putting this useful resource together Scott. One more item you can complete: Neither MSVC 9 or 10 implement thread-safe initialization of statics.

Scott Meyers said...

Thanks for this information. I'll add it to the table.