What is C++11? - Embedded.com

What is C++11?

The discussion here is on the “what is?” question in the context of C++0x (aka the just released C++11 ).The examples will emphasize what’s new in C++0x, but the “commentary” will emphasize their place in the general C++ design philosophy.

What is C++0x?  I don’t mean “How does C++0x differ from C++98?” I mean what kind of language is C++0x?  What kinds of programming are C++0x good for? In fact, I could drop the “0x” right here and attack the fundamental question directly: What is C++?

Or, if you feel pedantic, “What will C++ be once we have the facilities offered by the upcoming standard?” This is not an innocent “just philosophical” question.

Consider how many programmers have been harmed by believing that “C++ is an object-oriented language” and “religiously” built all code into huge class hierarchies, missing out on simpler, more modular approaches and on generic programming.

Of course C++ also supports OOP, but a simple label – especially if supported by doctrinaire teaching – can do harm by overly narrowing a programmer’s view of what can be considered reasonable code.

This paper illustrates the power of C++ through some simple examples of C++0x code presented in the context of their role in C++. My aim is to give an idea of the breath of the facilities and an understanding of the aims of C++, rather than offering an in-depth understanding of any individual feature.

The list of language features and standard library facilities described is too long mention here, but a major theme is the role of features as building blocks for elegant and efficient software, especially software infrastructure components. The emphasis is on C++’s facilities for building lightweight abstractions.

To read this external content in full, download the full paper from the author archives. 

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.