Table of ContentsCopyrightThe C++ In-Depth SeriesTitles in the SeriesPrefaceHow to Use This BookCoding Standards and YouAbout This BookAcknowledgmentsOrganizational and Policy IssuesChapter 0. Don't sweat the small stuff. (Or: Know what not to standardize.)SummaryDiscussionExamplesReferencesChapter 1. Compile cleanly at high warning levelsSummaryDiscussionExamplesExceptionsReferencesChapter 2. Use an automated build systemSummaryDiscussionReferencesChapter 3. Use a version control systemSummaryDiscussionExceptionsReferencesChapter 4. Invest in code reviewsSummaryDiscussionReferencesDesign StyleChapter 5. Give one entity one cohesive responsibilitySummaryDiscussionExamplesReferencesChapter 6. Correctness, simplicity, and clarity come firstSummaryDiscussionExamplesReferencesChapter 7. Know when and how to code for scalabilitySummaryDiscussionReferencesChapter 8. Don't optimize prematurelySummaryDiscussionExamplesExceptionsReferencesChapter 9. Don't pessimize prematurelySummaryDiscussionReferencesChapter 10. Minimize global and shared dataSummaryDiscussionExceptionsReferencesChapter 11. Hide informationSummaryDiscussionExceptionsReferencesChapter 12. Know when and how to code for concurrencySummaryDiscussionReferencesChapter 13. Ensure resources are owned by objects. Use explicit RAII and smart pointersSummaryDiscussionExceptionsReferencesCoding StyleChapter 14. Prefer compile- and link-time errors to run-time errorsSummaryDiscussionExamplesExceptionsReferencesChapter 15. Use const proactivelySummaryDiscussionExamplesReferencesChapter 16. Avoid macrosSummaryDiscussionExamplesExceptionsReferencesChapter 17. Avoid magic numbersSummaryDiscussionExamplesReferencesChapter 18. Declare variables as locally as possibleSummaryDiscussionExceptionsReferencesChapter 19. Always initialize variablesSummaryDiscussionExamplesExceptionsReferencesChapter 20. Avoid long functions. Avoid deep nestingSummaryDiscussionExceptionsReferencesChapter 21. Avoid initialization dependencies across compilation unitsSummaryDiscussionReferencesChapter 22. Minimize definitional dependencies. Avoid cyclic dependenciesSummaryDiscussionExceptionsReferencesChapter 23. Make header files self-sufficientSummaryDiscussionExamplesReferencesChapter 24. Always write internal #include guards. Never write external #include guardsSummaryDiscussionExceptionsReferencesFunctions and OperatorsChapter 25. Take parameters appropriately by value, (smart) pointer, or referenceChapter 25. Take parameters appropriately by value, (smart) pointer, or reference