Résumé
Write More Elegant C++ Programs and Improve Legacy Code "We are very pleased to see Rainer Grimm applying his teaching skills and industrial background to tackling the hard and necessary task of making the C++ Core Guidelines accessible to more people." -- Bjarne Stroustrup and Herb Sutter, co-editors, C++ Core Guidelines The official C++ Core Guidelines provide consistent best practices for writing outstanding modern C++ code and improving legacy code, but they're organized as a reference for looking up one specific point at a time, not as a tutorial for working developers. In C++ Core Guidelines Explained, expert C++ instructor Rainer Grimm has distilled them to their essence, removing esoterica, sharing new insights and context, and presenting well-tested examples from his own training courses. Grimm helps experienced C++ programmers use the Core Guidelines with any recent version of the language, from C++11 onward. Most of his code examples are written for C++17, with added coverage of newer versions and C++20 wherever appropriate, and references to the official C++ Core Guidelines online. Whether you're creating new software or improving legacy code, Grimm will help you get more value from the Core Guidelines' most useful rules, as you write code that's safer, clearer, more efficient, and easier to maintain. Apply the guidelines and the underlying programming philosophy Correctly use interfaces, functions, classes, enum, resources, expressions, and statements Optimize performance, implement concurrency and parallelism, and handle errors Work with constants, immutability, templates, generics, and metaprogramming Program in C++ style, manage source files, and use the Standard Library Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.Foreword Preface Acknowledgments About the Author Part I: The Guidelines Chapter 1: Introduction Chapter 2: Philosophy Chapter 3: Interfaces Chapter 4: Functions Chapter 5: Classes and Class Hierarchies Chapter 6: Enumerations Chapter 7: Resource Management Chapter 8: Expressions and Statements Chapter 9: Performance Chapter 10: Concurrency Chapter 11: Error Handling Chapter 12: Constants and Immutability Chapter 13: Templates and Generic Programming Chapter 14: C-Style Programming Chapter 15: Source Files Chapter 16: The Standard Library Part II: Supporting Sections Chapter 17: Architectural Ideas Chapter 18: Non-Rules and Myths Chapter 19: Profiles Chapter 20: Guideline Support Library Part III: Appendixes Appendix A: Enforcing the C++ Core Guidelines Appendix B: Concepts Appendix C: Contracts IndexRainer Grimm has worked as a software architect, team lead, and instructor since 1999, and offered seminars on C++, Python, and proprietary software since 2002. He writes regularly on C++, Python, and Haskell, speaks at conferences on programming issues, and blogs weekly in English (modernescpp.com) and German (www.grimm-jaud.de/index.php/blog). Now an independent instructor, he offers seminars on modern C++ and Python. He has authored several books on modern C++, concurrency, and related topics.