Get up to date quickly on the new changes coming with C++17 Professional C++ is the advanced manual for C++ programming. Designed to help experienced developers get more out of the latest release, this book skims over the basics and dives right in to exploiting the full capabilities of C++17. Each feature is explained by example, each including actual code snippets that you can plug into your own applications. Case studies include extensive, working code that has been tested on Windows and Linux, and the author's expert tips, tricks, and workarounds can dramatically enhance your workflow. Even many experienced developers have never fully explored the boundaries of the language's capabilities; this book reveals the advanced features you never knew about, and drills down to show you how to turn these features into real-world solutions. The C++17 release includes changes that impact the way you work with C++; this new fourth edition covers them all, including nested namespaces, structured bindings, string_view, template argument deduction for constructors, parallel algorithms, generalized sum algorithms, Boyer-Moore string searching, string conversion primitives, a filesystem API, clamping values, optional values, the variant type, the any type, and more. Clear explanations and professional-level depth make this book an invaluable resource for any professional needing to get up to date quickly. Maximize C++ capabilities with effective design solutions Master little-known elements and learn what to avoid Adopt new workarounds and testing/debugging best practices Utilize real-world program segments in your own applications C++ is notoriously complex, and whether you use it for gaming or business, maximizing its functionality means keeping up to date with the latest changes. Whether these changes enhance your work or make it harder depends on how well-versed you are in the newest C++ features. Professional C++ gets you up to date quickly, and provides the answers you need for everyday solutions.
Introduction Part 1: Introduction to Professional C++ Chapter 1: A Crash Course in C++ and the Standard Library Chapter 2: Working with Strings and String Views Chapter 3: Coding with Style Part 2: Professional C++ Software Design Chapter 4: Designing Professional C++ Programs Chapter 5: Designing with Objects Chapter 6: Designing for Reuse Part 3: C++ Coding the Professional Way Chapter 7: Gaining Proficiency with Classes and Objects Chapter 8: Mastering Classes and Objects Chapter 9: Discovering Inheritance Techniques Chapter 10: C++ Quirks, Oddities, and Incidentals Chapter 11: Writing Generic Code with Templates Chapter 12: Demystifying C++ I/O Chapter 13: Handling Errors Chapter 14: Overloading C++ Operators Chapter 15: Overview of the C++ Standard Library Chapter 16: Understanding Containers and Iterators Chapter 17: Mastering Standard Library Algorithms Chapter 18: String Localization and Regular Expressions Chapter 19: Additional Library Utilities Part 4: Mastering Advanced Features of C++ Chapter 20: Customizing and Extending the Standard Library Chapter 21: Advanced Templates Chapter 22: Memory Management Chapter 23: Multithreaded Programming with C++ Part 5: C++ Software Engineering Chapter 24: Maximizing Software Engineering Methods Chapter 25: Writing Efficient C++ Chapter 26: Conquering Debugging Chapter 27: Become adept at testing Chapter 28: Incorporating Design techniques and frameworks Chapter 29: Applying design patterns Chapter 30: Developing Cross-Platform and Cross-Language Applications Back Matter Appendix A: C++ Interviews Appendix B: Annotated Bibliography Appendix C: Standard Library Header Files
Marc Gregoire is a software engineer and developer of C/C++ applications for both Windows and Linux. He is a Microsoft Visual C++ MVP, the founder of the Belgian C++ users group, and is currently working on 3D laser scanning software for Nikon Metrology. He previously worked on critical 2G and 3G telecom software for Siemens and Nokia Siemens Networks. Marc is the author of Professional C++ 2nd and 3rd editions, co-author of C++ Standard Library Quick Reference, technical editor on numerous books and articles and maintains a blog at nuonsoft.com/blog.