This is an incomplete list of papers that I
(Bjarne Stroustrup) have written or co-authored
for the C++ standards committee.
Please remember that these are incomplete proposals, discussions of alternatives,
and exploration of the design space.
Note also that these papers were all written
to a specific audience (the members of the C++ standards committee),
at a specific time (relative to the then current draft of the standard),
and as part of a specific discussion.
They are typically not ideal introcutions for a general audience.
Not all has led to or will lead to changes to C++, and most of those will "mutate" significantly
as they progress from idea/proposal to final language change.
The order is roughly reverse chronological.
I aim eventually to gather all of my standard committee papers here.
For more information (in particular for essentially all papers since 1993), see
the WG21 site.
Here is a
recent status
of work of the "Evolution Working Group";
that is, the group (headed by me 1990-2004 and now by Ville Voutilainen) that is processing the proposals for new language features.
Please note that this is a summary, written for the EWG members; not a tutorial.
For a summary of C++11, see my C++11 FAQ.
Roger Orr, Howard Hinnant, Roger Orr, Bjarne Stroustrup, Daveed Vandevoorde, and Michael Wong:
Direction for ISO C++.
P2000R4.
2022-10-15.
Barry Revzin, Bjarne Stroustrup, Cameron DaCamara, Daveed Vandevoorde, Gabriel Dos Reis, Herb Sutter, Jason Merrill, Jonathan Caves, Richard Smith, and Ville Voutilainen:
The Equality Operator You Are Looking For.
P2468R2.
2022-01-15.
H. Hinnant, B. Stroustrup, R. Orr, D. Vandevoorde, and M. Wong:
Direction for ISO C++ (R1).
P0939R1.
2018-10-08.
Ville Voutilainen,
Thomas Koeppe,
Andrew Sutton,
Herb Sutter,
Gabriel Dos Reis,
Bjarne Stroustrup,
Jason Merrill,
Hubert Tong,
Eric Niebler,
Casey Carter,
Tom Honermann, and
Erich Keane:
Yet another approach for constrained declarations.
P1141R0.
2018-06-23.
Marshall Clow, Beman Dawes, Gabriel Dos Reis, Stephan T. Lavavej, Billy O'Neal, Bjarne Stroustrup, and Jonathan Wakely:
Standard Library Modules.
P0581R1.
2018-02-11.
B. Dawes, H. Hinnant, B. Stroustrup, D. Vandevoorde, and M. Wong:
Direction for ISO C++.
P0939R0.
2018-02-10.
Yuriy Solodkyy, Gabriel Dos Reis, and Bjarne Stroustrup:
Pattern Marching for C++.
2014-11.
This is a set of slides that I used for an evening session to encourage the committee members to start thinking seriously about functional-programming style pattern matching.
Please note that the slides are fundamentally a set of questions and alternatives, rather than a suggested solution.
Unfurtunately, I did not post the slides in a mailing so they were inaccessible to most people.
B. Stroustrup:
Moving right along.
More analysis on generated move operations.
N3201=10-0191.
October 2010. Suggestion not adopted because of undesirable complexity.
B. Stroustrup:
To move or not to move.
An analysis of problems related to generated copy and move operations.
N3174=100164.
October 2010.
Approved.
B. Stroustrup:
An Incomplete Language Feature.
A proposal to allow {} in default arguments.
N3139=10-0129.
September 2010.
Approved for function default argument only (for lack of time to handle template default arguments).
B. Stroustrup:
"New" Value Terminology.
An informal, unnumbered, note explaining work on improving the lvalue/rvalue terminology to take move semantics into account.
April 2010.
Jeremiah Willcock et al:
Lambda expressions and closures for C++.
N1968=06-0038. February 2006.
Discussion of design choices and best effort design.
After a long evolution, lanmbdas were accepted.
Bjarne Stroustrup and Gabriel Dos Reis:
Initialer lists.
December 2005.
Bjarne Stroustrup and Gabriel Dos Reis:
Initialization and initializers.
September 2005.
An overview of initialization and initializer problems with suggested solutions.
Follow up: N1919, N???, N???, and N???.
Bjarne Stroustrup, and Gabriel Dos Reis:
A concept design (Rev. 1).
April 2005.
An attempt to synthesize a concept design based on (among other sources) N1510, N1522, and N1536.
Jaakko Jarvi, Bjarne Stroustrup, and Gabriel Dos Reis:
Decltype and auto (revision 4).
September 2004.
Follow up: N1894.
Bjarne Stroustrup:
#scope: A simple scoping mechanism for the C/C++ preprocessor.
N1614/04-0054.
In retrospect, I think #scope is a bad name for what I'm trying to achieve.
A scope implicitly let in names.
Maybe the proposal would have fared better if it had been called #macro, #nomacro, or #filter.
Bjarne Stroustrup and Gabriel Dos Reis:
Concepts -- Syntax and composition.
October 2003.
An early discussion of how to express concept checking in C++.
Follow up: N1890.