Note: For browsing convenience, this bibliography is also available online at:
http://www.gotw.ca/publications/c++cs/bibliography
The bold references (e.g.,
[Abrahams96] ) are hyperlinks in the online bibliography.
[Abelson96] H. Abelson and G. J. Sussman .
Structure and Interpretation of Computer Programs
(2ndEdition) (MIT Press, 1996).
[Abrahams96] D. Abrahams .
"Exception Safety in STLport" (STLport website, 1996).
[Abrahams01a] D. Abrahams .
"Exception Safety in Generic Components," in M. Jazayeri, R. Loos, D. Musser (eds.),
Generic Programming: International Seminar on Generic Programming, Dagstuhl Castle, Germany, April/May 1998, Selected Papers , Lecture Notes in Computer Science 1766 (Springer, 2001).
[Abrahams01b] D. Abrahams .
"Error and Exception Handling" ([Boost] website, 2001).
[Alexandrescu00a] A. Alexandrescu .
"Traits: The else-if-then of Types" (
C++ Report , 12(4), April 2000).
[Alexandrescu00b] A. Alexandrescu .
"Traits on Steroids" (
C++ Report , 12(6), June 2000).
[Alexandrescu00c] A. Alexandrescu and P. Marginean .
"Change the Way You Write Exception-Safe CodeForever" (
C/C++ Users Journal , 18(12), December 2000).
[Alexandrescu01] A. Alexandrescu .
Modern C++ Design (Addison-Wesley, 2001).
[Alexandrescu01a] A. Alexandrescu .
"A Policy-Based basic_string Implementation" (
C/C++ Users Journal , 19(6), June 2001).
[Alexandrescu02a] A. Alexandrescu .
"Multithreading and the C++ Type System" (InformIT website, February 2002).
[Alexandrescu02b] A. Alexandrescu .
"Discriminated Unions (I)," "… (II)," and "… (III)" (
C/C++ Users Journal , 20(4,6,8), April/June/August 2002).
[Alexandrescu03a] A. Alexandrescu .
"Move Constructors" (
C/C++ Users Journal , 21(2), February 2003).
[Alexandrescu03b] A. Alexandrescu .
"Assertions" (
C/C++ Users Journal , 21(4), April 2003).
[Alexandrescu03c] A. Alexandrescu and P. Marginean .
"Enforcements" (
C/C++ Users Journal , 21(6), June 2003).
[Alexandrescu03d] A. Alexandrescu and D. Held .
"Smart Pointers Reloaded" (
C/C++ Users Journal , 21(10), October 2003).
[Alexandrescu04] A. Alexandrescu .
"Lock-Free Data Structures" (
C/C++ Users Journal , 22(10), October 2004).
[Allison98] C. Allison .
C & C++ Code Capsules (Prentice Hall, 1998).
[Austern99] M. H. Austern .
Generic Programming and the STL (Addison-Wesley, 1999).
[Barton94] J. Barton and L. Nackman .
Scientific and Engineering C++ (Addison-Wesley, 1994).
[Bentley00] J. Bentley .
Programming Pearls
(2ndEdition) (Addison-Wesley, 2000).
[BetterSCM] Better SCM Initiative website.
[Boost] C++ Boost.
[BoostLRG]
"Boost Library Requirements and Guidelines" (Boost website).
[Brooks95] F. Brooks .
The Mythical Man-Month (Addison-Wesley, 1975; reprinted with corrections in 1995).
[Butenhof97] D. Butenhof .
Programming with POSIX Threads (Addison-Wesley, 1997).
[Cargill92] T. Cargill .
C++ Programming Style (Addison-Wesley, 1992).
[C90] ISO/IEC 9899:1990(E),
Programming Languages C (ISO C90 and ANSI C89 Standard).
[C99] ISO/IEC 9899:1999(E),
Programming Languages C (revised ISO and ANSI C99 Standard).
[C++98] ISO/IEC 14882:1998(E),
Programming LanguagesC++ (ISO and ANSI C++ Standard).
[C++03] ISO/IEC 14882:2003(E),
Programming LanguagesC++ (updated ISO and ANSI C++ Standard including the contents of [C++98] plus errata corrections).
[C++TR104] ISO/IEC JTC1/SC22/WG21/N1711.
(Draft) Technical Report on Standard Library Extensions (ISO C++ committee working document, November 2004). This is a near-final draft of the extensions to the C++ standard library due to be published in 2005, including
shared_ptr .
[Cline99] M. Cline, G. Lomow, and M. Girou .
C++ FAQs
(2ndEdition) (Addison-Wesley, 1999).
[Constantine95] L. Constantine .
Constantine on Peopleware (Yourdon Press, 1995).
[Coplien92] J. Coplien .
Advanced C++ Programming Styles and Idioms (Addison-Wesley, 1992).
[Cormen01] T. Cormen, C. Leiserson, R. Rivest, C. Stein .
Introduction to Algrithms
(2ndEdition) (MIT Press, 2001).
[CVS] CVS home page.
[Cowan01] C. Cowan, M. Barringer, S. Beattie, and G. Kroah-Hartman .
"FormatGuard: Automatic Protection From printf Format String Vulnerabilities" (
Proceedings of the 2001 USENIX Security Symposium , August 2001, Washington, D.C.).
[Dewhurst03] S. Dewhurst .
C++ Gotchas (Addison-Wesley, 2003).
[Dinkumware-Safe] Dinkumware Unabridged Library documentation (Dinkumware website).
[Ellis90] M. Ellis and B. Stroustrup .
The Annotated C++ Reference Manual (Addison-Wesley, 1990).
[Gamma95] E. Gamma, R. Helm, R. Johnson, and J. Vlissides .
Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley, 1995).
[GnuMake] Gnu make (Gnu website).
[GotW] H. Sutter .
Guru of the Week column.
[Henney00] K. Henney .
"C++ Patterns: Executing Around Sequences" (EuroPLoP 2000 proceedings).
[Henney01] K. Henney .
"C++ Patterns: Reference Accounting" (EuroPLoP 2001 proceedings).
[Henney02a] K. Henney .
"Stringing Things Along" (
Application Development Advisor , July-August 2002).
[Henney02b] K. Henney .
"The Next Best String" (
Application Development Advisor , October 2002).
[Henricson97] M. Henricson and E. Nyquist .
Industrial Strength C++ (Prentice Hall, 1997).
[Horstmann95] C. S. Horstmann .
"Safe STL" (1995).
[Josuttis99] N. Josuttis .
The C++ Standard Library (Addison-Wesley, 1999).
[Keffer95] T. Keffer .
Rogue Wave C++ Design, Implementation, and Style Guide (Rogue Wave Software, 1995).
[Kernighan99] B. Kernighan and R. Pike .
The Practice of Programming (Addison-Wesley, 1999).
[Knuth89] D. Knuth .
"The Errors of TeX" (
SoftwarePractice & Experience , 19(7), July 1989.
[Knuth97a] D. Knuth .
The Art of Computer Programming, Volume 1: Fundamental Algorithms
(3rdEdition) (Addison-Wesley, 1997).
[Knuth97b] D. Knuth .
The Art of Computer Programming, Volume 2: Seminumerical Algorithms
(3rdEdition) (Addison-Wesley, 1997).
[Knuth98] D. Knuth .
The Art of Computer Programming, Volume 3: Sorting and Searching
(2ndEdition) (Addison-Wesley, 1998).
[Koenig97] A. Koenig and B. Moo .
Ruminations on C++ (Addison-Wesley, 1997).
[Lakos96] J. Lakos .
Large-Scale C++ Software Design (Addison-Wesley, 1996).
[Liskov88] B. Liskov .
"Data Abstraction and Hierarchy" (
SIGPLAN Notices , 23(5), May 1988).
[Martin96a] R. C. Martin .
"The Dependency Inversion Principle" (
C++ Report , 8(5), May 1996).
[Martin96b] R. C. Martin .
"Granularity" (
C++ Report , 8(9), October 1996).
[Martin96c] R. C. Martin .
"The Open-Closed Principle" (
C++ Report , 8(1), January 1996).
[Martin98] R. C. Martin, D. Riehle, F. Buschmann (eds.).
Pattern Languages of Program Design 3 (Addison-Wesley, 1998).
[Martin00] R. C. Martin ,
"Abstract Classes and Pure Virtual Functions" in R. C. Martin (ed.),
More C++ Gems (Cambridge University Press, 2000).
[McConnell93] S. McConnell .
Code Complete (Microsoft Press, 1993).
[Metrowerks] Metrowerks.
[Meyer00] B. Meyer .
Object-Oriented Software Construction
(2ndEdition) (Prentice Hall, 2000).
[Meyers96] S. Meyers .
More Effective C++ (Addison-Wesley, 1996).
[Meyers97] S. Meyers .
Effective C++
(2ndEdition) (Addison-Wesley, 1997).
[Meyers00] S. Meyers .
"How Non-Member Functions Improve Encapsulation" (
C/C++ Users Journal , 18(2), February 2000).
[Meyers01] S. Meyers .
Effective STL (Addison-Wesley, 2001).
[Meyers04] S. Meyers and A. Alexandrescu .
"C++ and the Perils of Double-Checked Locking, Part 1" and
"…Part 2" (
Dr. Dobb's Journal , 29(7,8), July and August 2004).
[Milewski01] B. Milewski .
C++ In Action (Addison-Wesley, 2001).
[Miller56] G. A. Miller .
"The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information" (
The Psychological Review , 1956, vol. 63).
[MozillaCRFAQ]
"Frequently Asked Questions About mozilla.org's Code Review Process" (Mozilla website).
[Murray93] R. Murray .
C++ Strategies and Tactics (Addison-Wesley, 1993).
[Musser01] D. R. Musser, G. J. Derge, and A. Saini .
STL Tutorial and Reference Guide ,
2ndEdition (Addison-Wesley, 2001).
[Parnas02] D. Parnas .
"The Secret History of Information Hiding" (
Software Pioneers: Contributions To Software Engineering , Springer-Verlag, New York, 2002).
[Peters99] T. Peters .
"The Zen of Python" (comp.lang.python, June 1999).
[Piwowarski82] P. Piwowarski .
"A Nesting Level Complexity Measure" (
ACM SIGPLAN Notices , 9/1982).
[Saks99] D. Saks .
"Thinking Deeply,"
"Thinking Deeper," and
"Thinking Even Deeper" (
C/C++ Users Journal , 17(4,5,6), April, May, and June 1999).
[Schmidt01] D. Schmidt, M. Stal, H. Rohnert, F. Buschmann .
Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects (Wiley, 2001).
[SeamonkeyCR]
"Seamonkey Code Reviewer's Guide" (Mozilla website).
[Sedgewick98] R. Sedgewick .
Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching
(3rd Edition) (Addison-Wesley, 1998).
[STLport-Debug] B. Fomitchev .
"STLport: Debug Mode" (STLport website).
[Stroustrup94] B. Stroustrup .
The Design and Evolution of C++ (Addison-Wesley, 1994).
[Stroustrup00] B. Stroustrup .
The C++ Programming Language
(Special 3rdEdition) (Addison-Wesley, 2000).
[Sutter99] H. Sutter .
"ACID Programming" (
Guru of the Week #61 ).
[Sutter00] H. Sutter .
Exceptional C++ (Addison-Wesley, 2000).
[Sutter02] H. Sutter .
More Exceptional C++ (Addison-Wesley, 2002).
[Sutter03] H. Sutter .
"Generalizing Observer" (
C/C++ Users Journal , 21(9), September 2003).
[Sutter04] H. Sutter .
Exceptional C++ Style (Addison-Wesley, 2004).
[Sutter04a] H. Sutter .
"Function Types" (
C/C++ Users Journal , 22(7), July 2004).
[Sutter04b] H. Sutter .
"When and How To Use Exceptions" (
C/C++ Users Journal , 22(8), August 2004).
[Sutter04c] H. Sutter .
"'Just Enough' Thread Safety" (
C/C++ Users Journal , 22(9), September 2004).
[Sutter04d] H. Sutter .
"How to Provide (or Avoid) Points of Customization in Templates" (
C/C++ Users Journal , 22(11), November 2004).
[SuttHysl01] H. Sutter and J. Hyslop .
"Hungarian wartHogs" (
C/C++ Users Journal , 19(11), November 2001).
[SuttHysl02] H. Sutter and J. Hyslop .
"A Midsummer Night's Madness" (
C/C++ Users Journal , 20(8), August 2002).
[SuttHysl03] H. Sutter and J. Hyslop .
"Sharing Causes Contention" (
C/C++ Users Journal , 21(4), April 2003).
[SuttHysl04a] H. Sutter and J. Hyslop .
"Getting Abstractions" (
C/C++ Users Journal , 22(6), June 2004).
[SuttHysl04b] H. Sutter and J. Hyslop .
"Collecting Shared Objects" (
C/C++ Users Journal , 22(8), August 2004).
[Taligent94]
Taligent's Guide to Designing Programs (Addison-Wesley, 1994).
[Tsai01] T. Tsai and N. Singh .
"Libsafe 2.0: Detection of Format String Vulnerability Exploits" (Avaya Labs, March 2001).
[Vandevoorde03] D. Vandevoorde and N. Josuttis .
C++ Templates (Addison-Wesley, 2003).
[Webber03] A. B. Webber .
Modern Programming Languages: A Practical Introduction (Franklin, Beedle & Associates, 2003).