The C++ Programming Language
Modified December 21, 2016
Advice of the day
FAQ of the day
Article of the day
- The ISO C++ Standard: C++ is standardized by ISO (The International Standards Organization) in collaboration with national standards organizations, such as ANSI (The American National Standards Institute), BSI (The British Standards Institute), DIN (The German national standards organization). The original C++ standard was issued in 1998, a minor revison in 2003, and a major update, C++11, was issued in September 2011, and the current standard is C++14. During it’s development, C++11 was referred to as C++0x. Currently the standards committee is working to produce a new standard, a major revision, in 2017: C++17.
- The of The C++ Foundation’s site for information about ISO C++ standards activities. Updated regularly.
- An almost complete C++14 standard. Note that this is mostcertainly not a tutorial. You can get the official final version from the ISO or NIST for $60. You are unlikely to need that unless you are a compiler implementer.
- The committee’s current working paper.
- The ISO C++ standards committee (WG21) maintains an official site with information about the current state of the standards effort. “More than you ever wanted to know about the work on the C++ standard.”
- My view of what C++17 should be. April 2015. Note that I don’t always get what I want and that I’m aggressive about the improvement of C++.
- My book The Design and Evolution of C++ describes the standards process and many of the design decisions made
- My book The C++ Programming Language (Fourth Edition) describes C++ as defined by the ISO standard.
- Libraries, etc.:
- An extensive list of current C++ libraries from C++.org.
- A list of available C++ libraries known as the C++ libraries FAQ.
- Boost.org: A repository for libraries meant to work well with the C++ standard library.
- STLab: a collection of peer-reviewed and portable C++ source libraries, leveraging and extending both the C++ Standard Library and the Boost Libraries. That page also contains links to Adobe open source libraries, such as the Generic Image Library GIL.
- Doug Schmidt’s site with information about a lot of things including the ACE framework and the TAO real-time ORB.
- High-performance numerical libraries provide excellent tests for interesting new programming techniques: The Object-Oriented Numerics Page is a list of libraries, projects, and mailing lists. For example: POOMA from LANL, Blitz++ from U. of Waterloo, MTL from Indiana University, and ROOT from CERN. These libraries, and many more, are available for downloading.
- SGI’s implementation of the STL.
- Dinkumware’s online standard library reference.
- Rogue Wave’s online documentation of an implementation of the standard library.
- Collections of articles:
- Herb Sutter’s collection of articles focussing on how to learn and use Standard C++ in a modern style.
- Kevlin Henneys’ collection of thought provoking and useful articles about good C++ design and style.
- Artima’s C++ source has a collection of C++ articles, columns, etc.
- Danny Kalev’s C++ articles and news items on informIT.com.
- What C++ is and what it will become. Opening keynote at Meeting C++. Berlin. November 2016.
- “Concepts” explained in 12 minutes. Meeting C++. Berlin. November 2016.
- The Driving Force Behind C++” An 18-minute TEDx talk in Shanghai. October 2016.
- Two talks at Budapest Technical University. A talk by my colleague Abel Sinkovic on debugging metaprograms followed by one by me on type- and resource-safe C++. Abel’s talk should be compulsory watching for people who claim that we don’t urgently need concepts. May 2016.
- C++ Today. An semi-technical talk to Churchill College Computer Society. Churchill is my Cambridge College. 36 minutes. May 2016.
- Dennis Ritchie’s homepage con taining lots of interesting information about the history of C, Unix, and (AT&T) Bell Lab’s computer science research center (where C++ was born).
- The Computer History Museum’s Software Preservation Group’s collection of C++ sources currently focusing on the early years. Contributions are most welcome (see the site for details).
When I list a site it is because I found some interesting information there, not because I wanted to endorse a product. All the major software suppliers have C++ related information on their sites. If you feel that I ought to add a site, feel free to tell me what and why.