Software Preservation Group of the Computer History Museum

C++ historical sources archive

Paul McJones, editor
paul@mcjones.org
http://www.mcjones.org/dustydecks/

Last updated 9 October 2025

Abstract

This is a collection of design documents, source code, and other materials concerning the birth, development, standardization, and use of the C++ programming language.

Contents

Chronology

Sources: "C++ Timeline", D&E, page 4; HOPL-III paper.

1979 April
Work on C with Classes began
1979 October
First C with Classes (Cpre) running
1983 August
First C++ in use at Bell Labs
1984
C++ named
1985 February
Cfront Release E (first external C++ release)
Come Meet the Author
1985 October
Cfront Release 1.0 (first commercial release)

The C++ Programming Language

1986
First commercial Cfront PC port (Cfront 1.1, Glockenspiel)
1987 February
Cfront Release 1.2
1987 December
First GNU C++ release (1.13)
1988
First Oregon Software C++ release [announcement]; first Zortech C++ release
1989 June
Cfront Release 2.0
1989
The Annotated C++ Reference Manual; ANSI C++ committee (J16) founded (Washington, DC)
1990
First ANSI X3J16 technical meeting (Somerset, NJ) [see group photograph, courtesy of Andrew Koenig]; templates accepted (Seattle, WA); exceptions accepted (Palo Alto, CA); first Borland C++ release
Somerset meeting group portrait
1991
First ISO WG21 meeting (Lund, Sweden); Cfront Release 3.0 (including templates); The C++ Programming Language (2nd edition)
1992
First IBM, DEC, and Microsoft C++ releases
1993
Run-time type identification accepted (Portland, Oregon); namespaces and string (templatized by character type) accepted (Munich, Germany); A History of C++: 1979-1991 published at HOPL2
1994
string (templatized by character type) (San Diego, California); the STL accepted (San Diego, CA and Waterloo, Canada)
1996
export accepted (Stockholm, Sweden)
1997
Final committee vote on the complete standard (Morristown, New Jersey)
1998
ISO C++ standard ratified
2003
Technical Corrigendum; work on C++0x started
2004
Performance technical report; Library technical report (hash tables, regular expressions, smart pointers, etc.)
2005
First votes on features for C++0x (Lillehammer, Norway); auto, static_assert, and rvalue references accepted in principle
2006
First full committee (official) votes on features for C++0x (Berlin, Germany)

C with Classes (Cpre)

"In October of 1979 I had a pre-processor, called Cpre, that added Simula-like classes to C running and in March of 1980 this pre-processor had been refined to the point where it supported one real project and several experiments. My records show the pre-processor in use on 16 systems by then. ... An early description of C with Classes was published as a Bell Labs technical report in April 1980 [Stroustrup 1980] and later in SIGPLAN Notices. The SIGPLAN paper was in April 1982 followed by a more detailed Bell Labs technical report Adding Classes to the C Language: An Exercise in Language Evolution [Stroustrup 1982] that was later published in Software: Practice and Experience. These papers set a good example by describing only features that were fully implemented and had been used." [Stroustrup 1993]

Papers

Cfront releases

NOTICE

The source code in this section is posted with the permission of the copyright owner for historical research purposes only.

Release E

Release E was the February 1985 "educational" release of Cfront. With the exception of parts of the makefile, Stroustrup believes that every word and every line of code of Release E was written by him. The first page of the source code has a handwritten diagram of the directory structure and a message to Stroustrup signed "SCD" (Steve Dewhurst).

Source Code

Documentation

Papers

Release 1.0

Cfront 1.0, in October 1985, was the first commercial release.

Source Code

Documentation

Release 2.0

AT&T released Cfront 2.0 in June 1989.

Source Code

Documentation

Release 3.0

Lucent released Cfront 3.0 in 1991.

Bjarne Stroustrup notes, "A warning that Cfront 3 is pre-standard and emphatically not recommended for use or further development might be in place."

Source Code

Standardization documents

GNU g++ releases

Papers and articles about C++

Acknowledgments

Bjarne Stroustrup; Chuck Allison (timeline correction); Jonathan Caves (Cfront 1.0 release notes); Noel Hunt (Pi debugger for blit); Poul-Henning Kamp (Cfront 1.2); Warren Toomey and The Unix Heritage Society (Cfront 1.2.2 and 2.x source from Research Unix Editions 9 and 10); Willem Wakker and ACE Associated Computer Experts, Amsterdam (Cfront 1.0 source), Mark Hopkins (transcription of Release E).