ISO/IEC 14882:2011 defines the programming language and specifies requirements for implementation. Also known as C++11, this is the first major revision of the standard since 1998. Its new features extend C++’s traditional strengths of flexibility and efficiency – for example, lambda functions, move semantics, and variadic templates further enable developers to use powerful expressiveness and strong abstraction to write efficient, high-performance code with full access to the hardware available when needed. Even more, the new C++11 has the convenience and ease of use of other modern languages – from features like auto type deduction and explicit virtual override control, to standard smart pointers that mean never writing delete again.
“During recent years the industry has paid more attention to ‘newer’ managed-code environments like Java that emphasize programmer convenience at the expense of expressive power and performance, for example by requiring always-on garbage collection, metadata for reflection, and virtual machine execution that incur a performance expense even when they’re not needed or used,” explains Herb Sutter, Convener of the ISO working group that developed the standard.
“Those languages continue to have their place. However, ‘traditional’ programming using native languages like C++, which emphasize expressive power and a pay-as-you-go philosophy of avoiding performance overheads unless features are actually used in the programme, never really went away – and now with C++11’s improvements that incorporate many of the best features of managed languages, modern C++ code is as clean and safe as code written other modern languages, as well as fast with performance by default and full access to the underlying system whenever you need it.
“This new edition underlines the continued importance of this popular language, whose new features and increased performance are causing renewed excitement in the industry. C++ continues to be used for just about everything, including for building compilers and runtimes for competing languages, Web browsers like Google’s Chrome, social media platforms like Facebook, and operating systems like Windows.”
C++ is a general purpose programming language based on the C programming language ( ISO/IEC 9899:1999). In addition to the facilities provided by C, C++ provides additional data types, classes, templates, exceptions, namespaces, operator overloading, function name overloading, references, free store management operators, and additional library facilities.
“C++ remains one of the most valuable tools at the disposal of developers, and is the language of choice for demanding applications in almost every domain,” says Mr. Sutter. “With this new edition, users will benefit from the joint effort of experts from all over the world, who worked together to develop an updated and better International Standard that harmonizes and disseminates best practice.”
ISO/IEC 14882:2011, Information technology – Programming languages – C++, is available from ISO national member institutes (see the complete list with contact details). It may also be obtained directly from the ISO Central Secretariat, price 352 Swiss francs, through the ISO Store or by contacting the Marketing, Communication & Information department (see right-hand column).