C++ 0x – What is it?

 

What’s C++ 0x?

C++ 0x is the next version of the C++ standard. The previous version has been introduced in 1998 and it has some (bug fix) updates in 2003. Now it’s the time for another version of C++. Microsoft takes a leap forward and they have implemented their own new implementation of C++, which is compatible with .NET framework. It is known as C++/CLI. Microsoft has already customized C++ for Managed extensions for .NET framework and it has shipped with Visual Studio 2002 & 2003. But in the C++/CLI they have removed most of the clumsy syntax of Managed C++.

C++/CLI is a proposal of Microsoft and is standardized by ECMA. Even the technologies and architectures are changed a lot in the past years in the area of programming, C++ not have changed that much. It still relies as the geek’s programming language, which is difficult to manage. If you haven’t a sound knowledge about advanced features and compiler behavior, some unexpected and unpleasant behavior possible to occur. That’s Scott Meyers written effective and more effective series of C++ and STL. The existing C++ standard also lacks a support of Garbage collector, which most of the new age programming language offers.

Before some years, the ISO C++ committee has started to collect various inputs from the programmers around the world and they proposed for a new version of the C++ standard, which is known as C++ 0x. The features offered in C++ 0x has been almost finalized at this time and is expected to complete by 2009. Anyway the committee still lacking out of resources money and other needy things to develop a new standard (There are not like Microsoft no?).

C++ 0x is really trying to attract newbie programmers to its world. In the new standard, they are not planning to add more changes to the core language features (may have some changes) but the most of the changes are mainly comes in the part C++ standard library. The new standard is not really targeting any specific industry or technology like real time applications, windows based application etc… they are making C++ more flexible, powerful and easy to use language. By introducing a new standard, it never means the whole world of C++ changes in a day. The new version is also has the backward compatibility to C++ 98. It also comes with an additional garbage collector.

The new proposed library of C++ is known as TR1 (technical report 1). TR1 explains about the new functionality being added to C++’s standard library. Now TR1 is almost finalized.

You can see A Brief Look at C++ 0x by Bjarne Stroustrup

What is Boost?

I’ve heard about Boost library some time before. I never paid any attention towards it because it is not using in my company and at that time I was solely sticking with libraries provided by Microsoft. Now the community has grown and they have some really improved extension for C++ standard libraries. Some of the proposed features of C++0x are taken from the Boost library (e.g tuple library). According to Scott Meyers, without STL and Boost programming with C++ is really an uphill battle. Anyway I’m not used it till now J

I was trying to write on this sometimes before. At that time the catch was a compiler, which implemented the new specification. GCC v4.x has almost implemented much of the TR1 functionalities. Let me take a break to do some experiments with new standard and features. I’m planning to do some experiments with Boost library and the new GCC compiler along with CygWin (which enables us to execute Linux based apps under windows). There are a lot of articles you can get by googling (not goggling) on C++ 0x. But still I’m trying scribble on my blog what I’ve learned in my way.