Morgan Stanley
|
Columbia University
|
Churchill College, Cambridge
home
|
C++
|
FAQ
|
technical FAQ
|
publications
|
WG21 papers
|
TC++PL
|
Tour++
|
Programming
|
D&E
|
bio
|
interviews
|
videos
|
quotes
|
applications
|
guidelines
|
compilers
The C++ Programming Language
Modified May 10, 2021
C++ is a general-purpose programming language with a bias towards systems
programming that
Or, in other words:
C++ is a language for defining and using light-weight abstractions.
It has significant strengths in areas where hardware must be handled effectively and there are significant complexity to cope with.
This includes many resource constrained systems and much foundational and infrastructure code.
Translations:
I (Bjarne Stroustrup)
am the designer and original implementor of C++.
You can find the language, the techniques for using it, and the techniques
for implementing it described in my
books,
my
papers,
in hundreds of books by others, and thousands of papers by others.
There are far too many to list.
Try a bookstore or a library.
Answers to many questions about C++ can be found in
Topics:
- 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), and
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.
After that, C++14, C++17, and C++20 were delivered according to a new ambitious 3-year schedule.
The curent standard, a major revision, was published in 2020: C++20.
-
The
of The C++ Foundation's
site for information about
ISO C++ standards activities.
Updated regularly.
-
holds a draft standard.
Note that this is most certainly not a tutorial.
You can get the official final version from the ISO or NIST for cash.
You are unlikely to need that unless you are a compiler implementer or a historian maintaining an archieve.
-
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 from
April 2015.
Note that I don't always get what I want and that I'm quite aggressive about the improvement of C++.
C++20 is pretty close to that "vision", though.
-
My book
The Design and Evolution of C++
describes the early 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.
- How to write good modern C++: Much C++ code is writting in achaic styles, missing out on elegance, safety and performance.
This is avoidable.
- Applications, compilers, etc.:
- 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.
-
From cppreference.com:
A list of open-source C++ libraries.
-
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.
Notably
ROOT from CERN.
These libraries, and many more, are available for downloading.
- C++ design and history:
- C++ GUI libraries and toolkits:
- Embedded systems:
- FAQs:
- Learning and teaching C++:
- General resources:
-
ACCU;
a C++ community site maintained by "The Association of C and C++ Users."
In particular, it holds the CVU and Overload magazines.
-
A C++ idioms list.
- Collections of articles:
- Videos:
C++: an invisible foundation.
A short talk plus a Q&A with the ACM student chapter at Hacettepe University in Ankara, Turkey.
February 2021.
-
A short introduction to the aims and status of modern C++.
Arhus University, Computer Science Department seminar.
October 2020.
-
The Beauty and Power of "Primitive" C++.
Cppcon 2020 Opening Keynote.
September 2020.
-
The continuing evolution of C++.
University Carlos III Madrid CS department.
January 2019.
-
Concepts: The future of generic programming (the future is here).
University Carlos III Madrid CS department.
January 2019.
-
No littering!.
Talk to Madrid C++ users groups.
January 2019.
-
Steve Carroll for Channel-9:
An interview with Bjarne Stroustrup and Gabriel Dos Reis
at CppCon 2018 about concepts, modules, and the essentials for language evolution.
And the story of the good ship Vasa.
Channel-9 copy.
September 2018.
-
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.
-
Oral History of Bjarne Stroustrup.
For the Computer History Museum
2 hours.
with transcript.
September 2015.
-
Object-oriented programming without inheritance.
ECOOP'15 Keynote. Prague.
July 2015.
-
A video interview about Cppcon and the C++ core guidelines.
September 2015.
-
Writig good C++14.
My Cppcon 2015 keynote.
September 2015.
-
All the talks (incl. mine) from CppCon 2015. That's about 100 quality talks.
September 2015.
-
Make simple tasks simple.
My Cppcon 2014 keynote.
September 2014.
-
All the talks (incl. mine) from CppCon 2014. That's about 100 quality talks.
September 2014.
-
An online "Event" and Q&A.
August 2014.
-
Lang.Next'14 Keynote:
What -- if anything -- have we learned from C++?
A 68 minute talk incl. Q&A.
-
GoingNative'13 Keynote:
The Essence of C++: With Examples in C++84, C++98, C++11, and C++14.
A 96 minute talk incl. Q&A.
-
An interview about
Software Development for Infrastructure.
-
GoingNative'12 Keynote:
C++11 Style.
A 90 minute talk incl. Q&A.
-
An
AT&T Tech Channel presentation of
my work and its impact from their
Tech Icons series.
-
A talk on C++0x
at CERN, September 2009.
-
The ACM HOPL-iii HOPL-iii videos (incl. mine).
June 2007.
-
A C++0x talk given at
University of Waterloo.
Google, NYC. August 2007.
-
A talk on C++0x initializer lists given at
Google, Mountainview. February 2007.
-
Several videos, audio recordings, and transcripts of talks,
panels, and interviews from
Dr. Dobb's Technetcast archieves.
-
Alex Stepanov (the father of the STL) on the importance of Mathematics in Programming.
-
A 1994 lecture: The Design of C++ (also known as "The flying goose talk" What happend was that I was supposed to use a teleprompter, which I hated, so when it broke down a third way into the talk, I could not see the slides or any notes; I was flying blind. The last two thirds of the talk was done without props, completely from memory. When I couldn't think of what to say next, I pulled the string on the goose to gain time).
Put up by the Computer History Museum.
- Related:
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.
Morgan Stanley
|
Columbia University
|
Churchill College, Cambridge
home
|
C++
|
FAQ
|
technical FAQ
|
publications
|
WG21 papers
|
TC++PL
|
Tour++
|
Programming
|
D&E
|
bio
|
interviews
|
videos
|
quotes
|
applications
|
guidelines
|
compilers