Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Anchor
Abrahams 10
Abrahams 10
[Abrahams 2010] Abrahams, David. Error and Exception Handling, #7. Boost Library. 2010.

Anchor
Banahan 03
Banahan 03
[Banahan 2003] Banahan, Mike. The C Book . 2003.

Anchor
Barney 10
Barney 10
[Barney 2010] Barney, Blaise. POSIX Threads Programming. Lawrence Livermore National Security, LLC. 2010.

Anchor
Becker 08
Becker 08
[Becker 2008] Becker, Pete. Working Draft, Standard for Programming Language C++. April 2008.

Anchor
Becker 09
Becker 09
[Becker 2009] Becker, Pete Working Draft, Standard for Programming Language C++. September 2009.

Anchor
Black 07
Black 07
[Black 2007] Black, Paul E.; Kass, Michael; & Koo, Michael. Source Code Security Analysis Tool Functional Specification Version 1.0. Special Publication 500-268. Information Technology Laboratory (ITL). May 2007.

Anchor
Cline 09
Cline 09
[Cline 2009] Cline, Marshall. C++ FAQ Lite—Frequently Asked Questions. 1991-2009.

Anchor
codesourcery 2016a
codesourcery 2016a
[CodeSourcery 2016a] CodeSourcery, Compaq, EDG, HP, IBM, Intel, Red Hat, SGI, et al. Itanium C++ ABI. December 2016 [accessed].

Anchor
codesourcery2016b
codesourcery2016b
[CodeSourcery 2016b] CodeSourcery, Compaq, EDG, HP, IBM, Intel, Red Hat, SGI, et al. Itanium C++ ABI (Revision: 1,86). December 2016 [accessed].

Anchor
Coverity 07
Coverity 07
[Coverity 2007] Coverity. Coverity Prevent User's Manual (3.3.0). 2007.

Anchor
CWE
CWE
[CWE] MITRE. Common Weakness Enumeration – A Community-Developed Dictionary of Software Weakness Types.

Anchor
Dewhurst 02
Dewhurst 02
[Dewhurst 2002] Dewhurst, Stephen C. C++ Gotchas: Avoiding Common Problems in Coding and Design. Addison-Wesley Professional. 2002.

Anchor
Dewhurst 05
Dewhurst 05
[Dewhurst 2005] Dewhurst, Stephen C. C++ Common Knowledge: Essential Intermediate Programming. Addison-Wesley Professional. 2005.

Anchor
DISA 2015
DISA 2015
[DISA 2015] DISA. Application Security and Development Security Technical Implementation Guide, Version 3, Release 10. Accessed April 2015.

Anchor
DISA 2016
DISA 2016
[DISA 2016] DISA. Application Security and Development Security Technical Implementation Guide, Version 4, Release 1. Accessed January 2017.

Anchor
DISA 2018
DISA 2018
[DISA 2018] DISA. Application Security and Development Security Technical Implementation Guide, Version 4, Release 8. Accessed January 2019.

Anchor
Dowd 06
Dowd 06
[Dowd 2006] Dowd, Mark; McDonald, John; & Schuh, Justin. Attacking delete and delete[] in C++. In The Art of Software Security Assessment. Addison-Wesley Professional. 2006.

Anchor
Fortify 06
Fortify 06
[Fortify 2006] Fortify Software Inc. Fortify Taxonomy: Software Security Errors. 2006.

Anchor
FSF 05
FSF 05
[FSF 2005] Free Software Foundation. GCC Online Documentation. 2005.

Anchor
Gamma 94
Gamma 94
[Gamma 1994] Gamma, Erich; Helm, Richard; Johnson, Ralph, & Vlissides, John. Design Patterns Elements of Reusable Object Oriented Software. Addison-Wesley Professional. 1994.

Anchor
gnu2016
gnu2016
[GNU 2016] gnu.org. GCC, the GNU Compiler Collection: Declaring Attributes of Functions. December 2016 [accessed].

Anchor
Goldberg 91
Goldberg 91
[Goldberg 1991] Goldberg, David. What Every Computer Scientist Should Know About Floating-Point Arithmetic. Sun Microsystems. March 1991.

Anchor
Graff 03
Graff 03
[Graff 2003] Graff, Mark G. & Van Wyk, Kenneth R. Secure Coding: Principles and Practices. O'Reilly. 2003. ISBN 0596002424.

Anchor
Henricson 97
Henricson 97
[Henricson 1997] Henricson, Mats & Nyquist, Erik. Industrial Strength C++. Prentice Hall PTR. 1997. ISBN 0-13-120965-5.

Anchor
Hinnant 05
Hinnant 05
[Hinnant 2005] Hinnant, Howard. RValue Reference Recommendations for Chapter 20. N1856=05-0116. August 2005.

Anchor
Hinnant 15
Hinnant 15
[Hinnant 2015] Hinnant, Howard. Reply to "std::exception Why what() is returning a const char* and not a string?" ISO C++ Standard—Discussion. June 2015.

Anchor
IEC 60812 2006
IEC 60812 2006
[IEC 60812 2006] Analysis techniques for system reliability - Procedure for failure mode and effects analysis (FMEA), 2nd ed. IEC 60812. IEC. January 2006.

Anchor
IEEE Std 610.12 1990
IEEE Std 610.12 1990
[IEEE Std 610.12 1990] IEEE.  IEEE Standard Glossary of Software Engineering Terminology. 1990.

Anchor
IEEE Std 1003.1-2013
IEEE Std 1003.1-2013

[IEEE Std 1003.1:2013] IEEE & The Open Group. Standard for Information Technology—Portable Operating System Interface (POSIX). Base Specifications. Issue 7. 2013.

Anchor
incits 2012
incits 2012
[INCITS 2012] INCITS Document number N3396= 12-0096. Dynamic memory allocation for over-aligned data. 2012. 

Anchor
INCITS 2014
INCITS 2014
[INCITS 2014] INCITS PL22.16 & ISO WG21 C++ Standards Committee, Library Working Group (LWG). C++ Standard Library Active Issues List (Revision R88). N3967. 2014.

Anchor
INCITS 2020
INCITS 2020
[INCITS 2020] INCITS PL22.16 & ISO WG21 C++ Standards Committee, Library Working Group (LWG). C++ Standard Library Active Issues List (Revision R88). N4860. 2020.

Anchor
Internet Society 00
Internet Society 00
[Internet Society 2000] The Internet Society. Internet Security Glossary (RFC 2828). 2000.

Anchor
ISO/IEC 9899-1999
ISO/IEC 9899-1999
Anchor
ISO-IEC 9899-1999
ISO-IEC 9899-1999
[ISO/IEC 9899-1999] ISO/IEC 9899-1999. Programming Languages — C, Second Edition. 1999.

Anchor
ISO/IEC 9899-2011
ISO/IEC 9899-2011
Anchor
ISO-IEC 9899-2011
ISO-IEC 9899-2011
[ISO/IEC 9899:2011] ISO/IEC. Programming Languages—C, 3rd ed. ISO/IEC 9899:2011. 2011.

Anchor
ISO/IEC14882-1998
ISO/IEC14882-1998
[ISO/IEC 14882-1998] ISO/IEC 14882-1998. Programming Languages — C++, First Edition. 1998.

Anchor
ISO/IEC14882-2003
ISO/IEC14882-2003
[ISO/IEC 14882-2003] ISO/IEC 14882-2003. Programming Languages — C++, Second Edition. 2003.

Anchor
ISO/IEC14882-2011
ISO/IEC14882-2011
[ISO/IEC 14882-2011] ISO/IEC 14882-2011. Programming Languages — C++, Third Edition. 2011.

Anchor
ISO/IEC14882-2014
ISO/IEC14882-2014
[ISO/IEC 14882-2014] ISO/IEC 14882-2014. Programming Languages — C++, Fourth Edition. 2014.

Anchor
ISO/IEC N3000
ISO/IEC N3000
[ISO/IEC N3000 2009] Working Draft, Standard for Programming Language C++. November 2009.

Anchor
ISO/IEC TR 24772-2013
ISO/IEC TR 24772-2013
[ISO/IEC TR 24772:2013] ISO/IEC. Information Technology—Programming Languages—Guidance to Avoiding Vulnerabilities in Programming Languages through Language Selection and Use. TR 24772-2013. ISO. March 2013.

Anchor
ISO/IEC TS 17961
ISO/IEC TS 17961
Anchor
ISO-IEC TS 17961
ISO-IEC TS 17961
Anchor
ISO/IEC TS 17961-2013
ISO/IEC TS 17961-2013

[ISO/IEC TS 17961:2012] ISO/IEC TS 17961. Information Technology—Programming Languages, Their Environments and System Software Interfaces—C Secure Coding Rules. ISO. 2012.

Anchor
Jack 07
Jack 07
[Jack 2007] Jack, Barnaby. Vector Rewrite Attack. Juniper Networks. May 2007.

Anchor
kalev99
kalev99
Anchor
kalev1999
kalev1999
[Kalev 1999] Kalev, Danny. ANSI/ISO C++ Professional Programmer's Handbook. Que. Corporation. 1999

Anchor
Lea 2000
Lea 2000
[Lea 2000] Lea, Doug. Concurrent Programming in Java, 2nd Edition. Addison-Wesley Professional. 2000.

[Lions 1996] Lions, J. L. ARIANE 5 Flight 501 Failure Report. European Space Agency (ESA) & National Center for Space Study (CNES). July 1996.

Anchor
Lions 96
Lions 96
[Lions 1996] Lions, J. L. ARIANE 5 Flight 501 Failure Report. European Space Agency (ESA) & National Center for Space Study (CNES). July 1996.

Anchor
Lockheed Martin 05
Lockheed Martin 05
[Lockheed Martin 2005] Lockheed Martin. Joint Strike Fighter Air Vehicle C++ Coding Standards for the System Development and Demonstration Program. Document Number 2RDU00001, Rev C. December 2005.

Anchor
Meyers 96
Meyers 96
[Meyers 1996] Meyers, Scott. More Effective C++: 35 New Ways to Improve Your Programs and Designs. Addison-Wesley. 1996.

Anchor
Meyers 01
Meyers 01
[Meyers 2001] Meyers, Scott. Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library. Addison-Wesley Professional. 2001.

Anchor
Meyers 05
Meyers 05
[Meyers 2005] Meyers, Scott. Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition). Addison-Wesley Professional. 2005.

Anchor
Meyers 14
Meyers 14
[Meyers 2014] Meyers, Scott. Reply to The Drawbacks of Implementing Move Assignment in Terms of Swap [blog post]. The View from Aristeia: Scott Meyers' Professional Activities and Interests. 2014.

Anchor
Microsoft 10
Microsoft 10
[Microsoft 2010] STL std::string class causes crashes and memory corruption on multi-processor machines. 2010.

Anchor
MISRA 04
MISRA 04
[MISRA 2004] MIRA Limited. MISRA C: 2004 Guidelines for the Use of the C Language in Critical Systems. MIRA Limited. ISBN 095241564X. October 2004.

Anchor
MISRA 08
MISRA 08
[MISRA 2008] MISRA Limited. MISRA C++ 2008 Guidelines for the Use of the C++ Language in Critical Systems. ISBN 978-906400-03-3 (paperback);  ISBN 978-906400-04-0 (PDF). June 2008.

Anchor
MITRE 07
MITRE 07
[MITRE 2007] MITRE. Common Weakness Enumeration, Draft 9. April 2008.

Anchor
MITRE 08a
MITRE 08a
[MITRE 2008a] MITRE. CWE ID 327. Use of a Broken or Risky Cryptographic Algorithm. 2008.

Anchor
MITRE 08b
MITRE 08b
[MITRE 2008b] MITRE. CWE ID 330. Use of Insufficiently Random Values. 2008.

Anchor
MITRE
MITRE
[MITRE] MITRE. Common Weakness Enumeration, Version 1.8. February 2010.

Anchor
MSDN 10
MSDN 10
[MSDN 2010] Microsoft Developer Network. CryptGenRandom Function. December 2016 [accessed].

Anchor
msdn2016
msdn2016
[MDSN 2016] Microsoft Developer Network. nothrow (C++). December 2016 [accessed].

Anchor
NIST 06
NIST 06
[NIST 2006] NIST. SAMATE Reference Dataset. 2006.

Anchor
POSIX.1-2013
POSIX.1-2013
Anchor
IEEE Std 1003.1-2013
IEEE Std 1003.1-2013
Anchor
ISO/IEC 9945:2013
ISO/IEC 9945:2013
Anchor
Open Group 13
Open Group 13
[Open Group 2013] The Open Group. The Open Group Base Specifications Issue 7, IEEE Std 1003.1, 2013 Edition. 2013.

Anchor
POSIX.1-2008
POSIX.1-2008
Anchor
IEEE Std 1003.1-2008
IEEE Std 1003.1-2008
Anchor
ISO/IEC 9945:2008
ISO/IEC 9945:2008
Anchor
Open Group 08
Open Group 08
[Open Group 2008] The Open Group. The Open Group Base Specifications Issue 7, IEEE Std 1003.1, 2008 Edition. 2008.

Anchor
POSIX.1-2004
POSIX.1-2004
Anchor
IEEE Std 1003.1-2004
IEEE Std 1003.1-2004
Anchor
ISO/IEC 9945:2003
ISO/IEC 9945:2003
Anchor
Open Group 04
Open Group 04
[Open Group 2004] The Open Group. The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition. 2004.

Anchor
Plum 91
Plum 91
[Plum 1991] Plum, Thomas. C++ Programming. Plum Hall, Inc. November 1991. ISBN 0911537104.

Anchor
Quinlan 06
Quinlan 06
[Quinlan 2006] Quinlan, Dan; Vuduc, Richard; Panas, Thomas; Härdtlein, Jochen; & Sæbjørnsen, Andreas. Support for Whole-Program Analysis and the Verification of the One-Definition Rule in C++. 27-35. Page 500-262. In Proceedings of the Static Analysis Summit. July 2006.

Anchor
rohlf 2009
rohlf 2009
[Rohlf 2009] Rohlf, Chris. Fun with erase (). 2009.

Anchor
Saks 99
Saks 99
[Saks 1999] Saks, Dan. const T vs.T const. Embedded Systems Programming. February 1999. Pages 13-16.

Anchor
Saks 07
Saks 07
[Saks 2007] Saks, Dan. Sequence Points. Embedded Systems Design. 2007.

Anchor
Seacord 05
Seacord 05
[Seacord 2005] Seacord, Robert C. Secure Coding in C and C++. Addison-Wesley. 2005. ISBN 0321335724.

Anchor
Seacord 2013
Seacord 2013
Anchor
Seacord 13
Seacord 13

[Seacord 2013] Seacord, Robert C. Secure Coding in C and C++, Second Edition. Addison-Wesley. 2013.

Anchor
Sebor 04
Sebor 04
[Sebor 2004] Sebor, Martin. C++ Standard Core Language Active Issues, Revision 68. 2010.

Anchor
SGI 06
SGI 06
[SGI 2006] Silicon Graphics, Inc. basic_string<charT, traits, Alloc>. Standard Template Library Programmer's Guide. 2006.

Anchor
Steele 77
Steele 77
[Steele 1977] Steele, G. L. Arithmetic shifting considered harmful. SIGPLAN Notices. Volume 12. Issue 11. November 1977. Pages 61-69.

Anchor
Stroustrup 97
Stroustrup 97
[Stroustrup 1997] Stroustrup, Bjarne. The C++ Programming Language, Third Edition. Addison-Wesley. 1997. ISBN 978-0201700732.

Anchor
Stroustrup 06
Stroustrup 06
[Stroustrup 2006] Stroustrup, Bjarne. C++ Style and Technique FAQ. 2006. December 2016 [accessed].

Anchor
Stroustrup 01
Stroustrup 01
[Stroustrup 2001] Stroustrup, Bjarne. Exception Safety: Concepts and Techniques. AT&T Labs. 2001.

Anchor
Sun 93
Sun 93
[Sun 1993] Sun Security Bulletin #00122. 1993.

Anchor
Sutter 00
Sutter 00
[Sutter 2000] Sutter, Herb. Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions. Addison-Wesley Professional. 2000. ISBN 0201615622.

Anchor
Sutter 01
Sutter 01
[Sutter 2001] Sutter, Herb. More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions. Addison-Wesley Professional. 2001. ISBN 020170434.

Anchor
Sutter 04
Sutter 04
[Sutter 2004] Sutter, Herb & Alexandrescu, Andrei. C++ Coding Standards: 101 Rules, Guidelines, and Best Practices. Addison-Wesley Professional. 2004. ISBN 0321113586.

Anchor
van Sprundel06
van Sprundel06
[van Sprundel 2006] van Sprundel, Ilja. Unusual bugs. 2006.

Anchor
Viega 03
Viega 03
[Viega 2003] Viega, John & Messier, Matt. Secure Programming Cookbook for C and C++: Recipes for Cryptography, Authentication, Networking, Input Validation & More. O'Reilly. 2003. ISBN 0-596-00394-3.

Anchor
Viega 05
Viega 05
[Viega 2005] Viega, John. CLASP Reference Guide, Volume 1.1. Secure Software. 2005.

Anchor
VU#159523
VU#159523
[VU#159523] Giobbi, Ryan. Vulnerability Note VU#159523. Adobe Flash Player integer overflow vulnerability. April 2008.

Anchor
VU#162289
VU#162289
[VU#162289] Dougherty, Chad. Vulnerability Note VU#162289. GCC Silently Discards Some Wraparound Checks. April 2008.

Anchor
VU623332
VU623332
[VU#623332] Mead, Robert. Vulnerability Note VU#623332. MIT Kerberos 5 contains double free vulnerability in "krb5_recvauth()" function. July 2005.

Anchor
VU925211
VU925211
[VU#925211] Weimer, Florian. Vulnerability Note VU#925211. Debian and Ubuntu OpenSSL packages contain a predictable random number generator. May 2008.

Anchor
Warren 02
Warren 02
[Warren 2002] Warren, Henry S. Hacker's Delight. Addison Wesley Professional. 2002. ISBN 0201914654.

Anchor
Williams 10
Williams 10
[Williams 2010a] Williams, Anthony. Thread. Boost Library. 2010.

Anchor
Williams 10
Williams 10
[Williams 2010b] Williams, Anthony. Simpler Multithreading in C++0x. Internet.com. 2010.

Anchor
xorl 2009
xorl 2009
[xorl 2009] xorl. xorl %eax, %eax. December 2016 [accessed]

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="c30546b7-f65f-4a9f-beb5-c05b466dc346"><ac:parameter ac:name="">Henricson 97</ac:parameter></ac:structured-macro>
\[Henricson 97\] Henricson, Mats & Nyquist, Erik. _Industrial Strength C+\+_. Prentice Hall PTR, 1997 (ISBN 0-13-120965-5). [http://hem.passagen.se/erinyq/industrial/index.htm].

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="8c3cd3ff-081f-4005-b139-ed0af710f03e"><ac:parameter ac:name="">ISO/IEC 9899-1999</ac:parameter></ac:structured-macro>
\[ISO/IEC 9899-1999\] ISO/IEC 9899-1999. _Programming Languages --- C, Second Edition_, 1999.

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="518d234d-383e-419c-be64-ac62592c1e90"><ac:parameter ac:name="">ISO/IEC 14882-2003</ac:parameter></ac:structured-macro>
\[ISO/IEC 14882-2003\] ISO/IEC 14882-2003. _Programming Languages --- C++, Second Edition_, 2003.

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="eab723a3-0e84-4218-a73e-aca837ed0187"><ac:parameter ac:name="">Lockheed Martin 2005</ac:parameter></ac:structured-macro>
\[Lockheed Martin 2005\] Lockheed Martin. "Joint Strike Fighter Air Vehicle C+\+ Coding Standards for the System Development and Demonstration Program." Document Number 2RDU00001 Rev C., December 2005.

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="ed8c4ea7-4ef7-4d52-86ef-f7dca427b614"><ac:parameter ac:name="">Meyers 97</ac:parameter></ac:structured-macro>
\[Meyers 97\] Meyers, Scott. _Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)_. Boston, MA: Addison-Wesley Professional, 1997.

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="62a0d036-93f8-4cdf-a98c-3afe417b4ad3"><ac:parameter ac:name="">Meyers 01</ac:parameter></ac:structured-macro>
\[Meyers 01\] Meyers, Scott. _Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library_. Boston, MA: Addison-Wesley Professional, 2001.

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="03f22990-a9fd-45f8-bcb2-ae7d7bcb6005"><ac:parameter ac:name="">Meyers 06</ac:parameter></ac:structured-macro>
\[Meyers 06\] Meyers, Scott. _More Effective C++: 35 New Ways to Improve Your Programs and Designs_. Boston, MA: Addison-Wesley, 1996.

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="ffa82428-2f9b-43d5-9439-085ead7e9fee"><ac:parameter ac:name="">MISRA 04</ac:parameter></ac:structured-macro>
\[MISRA 04\] MIRA Limited. "MISRA C: 2004 Guidelines for the Use of the C Language in Critical Systems." Warwickshire, UK: MIRA Limited, October 2004 (ISBN 095241564X). [http://www.misra.org.uk/].

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="c7a7e1df-b81a-4a33-a7a3-215a85b737b8"><ac:parameter ac:name="">NIST 06</ac:parameter></ac:structured-macro>
\[NIST 06\] NIST. _SAMATE Reference Dataset_. [http://samate.nist.gov/SRD/] (2006).

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="d6313ede-ed40-473f-b8a8-0b183815ff78"><ac:parameter ac:name="">Plum 91</ac:parameter></ac:structured-macro>
\[Plum 91\] Plum, Thomas. _C+\+ Programming_. Kamuela, HI: Plum Hall, Inc., November 1991 (ISBN 0911537104).

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="bd06ae2b-9b53-4959-8bca-92f5268b1501"><ac:parameter ac:name="">Seacord 05</ac:parameter></ac:structured-macro>
\[Seacord 05\] Seacord, R. _Secure Coding in C and C+\+_. Upper Saddle River, NJ: Addison-Wesley, 2006 (ISBN 0321335724).

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="addd0741-d64b-4f18-9504-3e7b8ac628e5"><ac:parameter ac:name="">Stroustrup 97</ac:parameter></ac:structured-macro>
\[Stroustrup 97\] Stroustrup, Bjarne. _The C+\+ Programming Language, Third Edition_. Reading, MA: Addison-Wesley, 1997 (ISBN 0201889544).

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="156280d3-c297-42c3-9648-e71763d23209"><ac:parameter ac:name="">Stroustrup 06</ac:parameter></ac:structured-macro>
\[Stroustrup 06\] Stroustrup, Bjarne. _C+\+ Style and Technique FAQ_. [http://public.research.att.com/~bs/bs_faq2.html] (2006).

Wiki Markup<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="bf19169e-26b8-42e3-aa93-bdf36953f37b"><ac:parameter ac:name="">Sutter 04</ac:parameter></ac:structured-macro> \[Sutter 04\] Sutter, Herb & Alexandrescu, Andrei. _C+\+ Coding Standards: 101 Rules, Guidelines, and Best Practices_. Boston, MA: Addison-Wesley Professional, 2004 (ISBN 0321113586).