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.
Tabla de materias
INTRODUCTION xlvii
PART I: INTRODUCTION TO PROFESSIONAL C++
CHAPTER 1: A CRASH COURSE IN C++ AND THE STANDARD LIBRARY 3
CHAPTER 2: WORKING WITH STRINGS AND STRING VIEWS 57
CHAPTER 3: CODING WITH STYLE 71
PART II: PROFESSIONAL C++ SOFTWARE DESIGN
CHAPTER 4: DESIGNING PROFESSIONAL C++ PROGRAMS 95
CHAPTER 5: DESIGNING WITH OBJECTS 123
CHAPTER 6: DESIGNING FOR REUSE 143
PART III: C++ CODING THE PROFESSIONAL WAY
CHAPTER 7: MEMORY MANAGEMENT 163
CHAPTER 8: GAINING PROFICIENCY WITH CLASSES AND OBJECTS 199
CHAPTER 9: MASTERING CLASSES AND OBJECTS 231
CHAPTER 10: DISCOVERING INHERITANCE TECHNIQUES 277
CHAPTER 11: C++ QUIRKS, ODDITIES, AND INCIDENTALS 333
CHAPTER 12: WRITING GENERIC CODE WITH TEMPLATES 373
CHAPTER 13: DEMYSTIFYING C++ I/O 409
CHAPTER 14: HANDLING ERRORS 433
CHAPTER 15: OVERLOADING C++ OPERATORS 473
CHAPTER 16: OVERVIEW OF THE C++ STANDARD LIBRARY 507
CHAPTER 17: UNDERSTANDING CONTAINERS AND ITERATORS 535
CHAPTER 18: MASTERING STANDARD LIBRARY ALGORITHMS 607
CHAPTER 19: STRING LOCALIZATION AND REGULAR EXPRESSIONS 663
CHAPTER 20: ADDITIONAL LIBRARY UTILITIES 691
PART IV: MASTERING ADVANCED FEATURES OF C++
CHAPTER 21: CUSTOMIZING AND EXTENDING THE STANDARD LIBRARY 727
CHAPTER 22: ADVANCED TEMPLATES 775
CHAPTER 23: MULTITHREADED PROGRAMMING WITH C++ 813
PART V: C++ SOFTWARE ENGINEERING
CHAPTER 24: MAXIMIZING SOFTWARE ENGINEERING METHODS 859
CHAPTER 25: WRITING EFFICIENT C++ 881
CHAPTER 26: BECOMING ADEPT AT TESTING 909
CHAPTER 27: CONQUERING DEBUGGING 933
CHAPTER 28: INCORPORATING DESIGN TECHNIQUES AND FRAMEWORKS 971
CHAPTER 29: APPLYING DESIGN PATTERNS 991
CHAPTER 30: DEVELOPING CROSS-PLATFORM AND CROSSLANGUAGE APPLICATIONS 1017
APPENDIX A: C++ INTERVIEWS 1039
APPENDIX B: ANNOTATED BIBLIOGRAPHY 1063
APPENDIX C: STANDARD LIBRARY HEADER FILES 1075
APPENDIX D: INTRODUCTION TO UML 1083
INDEX 1087
Sobre el autor
About the author
Marc Gregoire is a Microsoft Visual C++ MVP, software engineer and developer, and the founder of the Belgian C++ user group. Having previously completed critical 2G and 3G telecom software for Siemens and Nokia Siemens Networks, he currently works on 3-D laser scanning software for Nikon Metrology. Marc is the author of Profesional C++ second and third editions and technical editor for numerous published works.
Visit us at wrox.com where you have access to free code samples.