Bibliography
Note: For browsing convenience, this bibliography is also available online at:http://www.gotw.ca/publications/c++cs/bibliographyThe 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).