C++0x Will Be C++ 2011
As you might already have heard from other places and read from other sources, the ISO C++ committee has now finally voted to publish the current Final Draft International Standard (FDIS) for the language referred to affectionately as C++0x.
This means that the FDIS will pretty much be the version of the C++ standard that the international representatives will vote upon for ratification in the upcoming votes happening in August this year. Hopefully this means that the world can start writing code in the new version of the C++ language that is already being supported by numerous compilers. You can find Herb Sutter's post here which is pretty much the de facto post which explains what has happened in the past committee meeting in Madrid. So what does this mean for ye old C++ programmers?
In the interim, the reality of the matter is not much will change with C++. C++03 code will still compile with C++0x compilers, although there may be some subtle deviations in some corner cases of the language. I'll get into more detail about what these things are at a later stage when I get my hands on a copy of the FDIS, but it's safe to say that C++03 code (with the exception of those using deprecated libraries, like std::auto_ptr) will pretty much build in any C++0x compiler.
That is the good news. The better news is that the C++0x - or should I say C++11 - version of the language will introduce nice things like rvalue references, move semantics, lambda's as first-class elements of the language, automatic type deduction (with auto), and standardized "typeof" in decltype. There's also atomics, a defined memory model, and new keywords and functionality (final).
There isn't much bad news that comes with the new C++ standard, but it does spell bad news for the compiler vendors and open source C++ compiler projects. This latest version of the C++ language is pretty extensive and the specifications are thorough. It's not going to be easy to have language disputes resolved now that there are too many things to deal with - exception safety guarantees, threading, the memory model, are just a few issues that have to be visited when code generation time is concerned. I think though we're going to see a race and a real competition among the compiler vendors as far as quality of the implementation and standards compliance is concerned. In the end I think this is also a good thing.
That said though it should be a good time right about now to be a C++ developer and/or someone looking to learn C++ as a programming language for the future. Especially now that machines will be much more powerful and the parallel/concurrent computing practices will infiltrate not only the server-based applications but also the handhelds, C++11 is poised to be the language that delivers on the promise of mainstream concurrent/parallel programming.
Here's to the decade ahead that will be all about parallel/concurrent programming with C++.
PS. on a side-note, I now have a spiffy new Macbook Pro 15″ with the quad Intel i7 2.2Ghz - now I can write more and do more programming, so hopefully I can write more updates as the days go by and I get more familiar with this machine.Comments
View All Articles by Dean Michael Berris
Our Daily Email of Breaking eBusiness News
About the Author:
Dean Michael Berris is the writer of C++ Soup! C++ Soup is a blog about what’s new, up-coming, and what’s going on with C++. C++ Developer with years of experience building high performance applications and implementing multi-threaded highly scalable systems.
WebProNews RSS Feed
More Expert Articles Articles