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 April 28, 2019
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),
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.
After that, C++14 and C++17 were delivered according to a new ambitions 3-year schedule.
Currently the standards committee is working to produce a new standard, a major revision, in 2020: C++20.
- 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.
-
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.
- C++ design and history:
- C++ GUI libraries and toolkits:
- Embedded systems:
- FAQs:
- Learning and teaching C++:
- General resources:
- Collections of articles:
- Videos:
-
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