Introducing C++11

This past week in Madrid, Spain, the next iteration of the C++ programming language, C++11, passed review by the technical standards committee.

Photo of Dr. Bjarne StroustrupBarring unforeseen delays the official standard will be approved in the fall.

Texas A&M Distinguished Professor and College of Engineering Endowed Chair in Computer Science Bjarne Stroustrup designed and implemented the C++ programming language, which celebrated its 25th anniversary in October 2010. C++ is one of the most widely used programming languages; it simplified the interaction between man and machine and helped object-oriented programming become the leading method of software programming and development. Chances are if that you have an appliance in your house that uses a computer, it is running C++.

For a programming language, a standard represents a long-term commitment to the people who work with it. An ISO (International Organization of Standardization) standard will ensure that decades from now, today's standard conforming C++ programs will run with minimal modifications, just as an older C++ programs do today. The ISO standard will allow programmers to use C++ on essentially all computers and from every implementation provider. Traditionally the standardization of a programming language occurs about every 10 years, with most of the work done by volunteers. Stroustrup was heavily involved in the process for C++.

"The new standard provides language features that make it easier to write correct and well-performing code in C++ together with more standard libraries. For example, C++11 provides facilities for writing concurrent code (e.g. for multicore machines) in a type safe-manner. The improved language facilities are focused on allowing better specification and use of abstractions (classes and templates). Examples are a more efficient way of getting results out of functions (move semantic), better facilities for object initialization, and a simpler for loop. Examples of new library components are hash tables, threads, and regular expression matching."

Up next for Stroustrup is a ton of writing: "Next for me is to write the next edition of The C++ Programming Language, the definitive book on C++. Also, we now have the updated language features, but we don't yet have a doctrine of use; we don't have a coherent explanation of the language as a whole. People don't use individual language features; they need an explanation of how to use the features effectively in combination to solve real-world problems," Stroustrup said.

"The purpose of standardization is not language features; the purpose is to make C++ code faster, more reliable, easier to write, easier to maintain, and easier to modify. Now that we know what the standard looks like, we can start programming with it. Compilers are already implementing many of the new features today."

For more details, please see the C++0x FAQ athttp://www.research.att.com/~bs/C++0xFAQ.html.

Stroustrup is a member of the National Academy of Engineering, an IEEE Fellow, an AT&T Fellow and an ACM Fellow. In 1993 he received the ACM Grace Murray Hopper award "for his early work laying the foundations for the C++ programming language. Based on those foundations and Dr. Stroustrup's continuing efforts, C++ has become one of the most influential programming languages in the history of computing." In 2008, Stroustrup received the Dr. Dobb's Excellence in Programming award for "advancing the craft of computer programming."

Please visit his homepage at http://www2.research.att.com/~bs for more information.