Changes to the standard behind of one of the world's most popular programming languages have been approved by standards chiefs.
The next version of C++ has been approved during a unanimous ballot by the International Organization for Standardization (ISO).
Official publication of what will now be called C++11 is expected by the end of the year, according to C++ guru and ISO C++ committee chief Herb Sutter, who announced the news here.
Sutter called the ballot an "important milestone in the history of a great language".
Speaking to The Reg ahead of the ISO ballot earlier this year, Sutter said he reckoned the update represents the biggest change to C++ since the first standard was ratified 13 years ago.
Sutter told us here: "This is the first major rev of the standard with new features since 1998."
C++ was created by Bjarne Stroustrup as a general purpose programming language that was both powerful and simpler to use than C, thanks to the inclusion of object orientation.
C++ is widely used today to differing degrees in Apple's OS X; Microsoft's Windows 7; Google's MapReduce and Chrome; Facebook; MySQL; and Adobe Illustrator – to name just a few.
While C++ was a step forward, the language has remained complex, prompting Sun Microsystems' James Gosling to cook up Java, famously saying that Java was C++ "without the guns, knives and clubs". Stroustrup's creation is so complex that C++ is reputedly responsible for causing more bad language than any other programming language.
C++11 features a plethora of changes to take down frustration levels, including the addition of lambda functions and initialiser lists. Possibly the biggest change, however, is the inclusion of a standardised memory model, something Gosling's Java actually adopted in 2005.
The memory model means that the C++ spec has a standardised library that devs can adhere to, and that apps can call, regardless of who made the compiler and what platform it is running on. Sutter told us this year that the time is now ripe for a standardised memory model in the official spec. The reasoning is the fact that multi-core chips are coming more and more into the computing mainstream, in everything from Dell Pentium servers to the iPad 2. Multi-core requires that different threads in a piece of software talk to processor's memory cores concurrently, adding to the programming complexity.
Sutter has gone on record in the run-up to C++11 as saying C++ must go concurrent as the "free lunch" of single core is over. ®