Book Description
The professional programmer's Deitel® guide to C++20 Written for programmers with a background in another high-level language, in this book, you'll learn Modern C++ development hands on using C++20 and its "Big Four" features--Ranges, Concepts, Modules and Coroutines. (For more details, see the Preface, and the table of contents diagram inside the front cover.) In the context of 200+, hands-on, real-world code examples, you'll quickly master Modern C++ coding idioms using popular compilers--Visual C++®, GNU® g++, Apple® Xcode® and LLVM®/Clang. After the C++ fundamentals quick start, you'll move on to C++ standard library containers array and vector; functional-style programming with C++20 Ranges and Views; strings, files and regular expressions; object-oriented programming with classes, inheritance, runtime polymorphism and static polymorphism; operator overloading, copy/move semantics, RAII and smart pointers; exceptions and a look forward to C++23 Contracts; standard library containers, iterators and algorithms; templates, C++20 Concepts and metaprogramming; C++20 Modules and large-scale development; and concurrency, parallelism, the C++17 and C++20 parallel standard library algorithms and C++20 Coroutines. Features Rich coverage of C++20's "Big Four": Ranges, Concepts, Modules and Coroutines Objects-Natural Approach: Use standard libraries and open-source libraries to build significant applications with minimal code Hundreds of real-world, live-code examples Modern C++: C++20, 17, 14, 11 and a look to C++23 Compilers: Visual C++®, GNU® g++, Apple Xcode® Clang, LLVM®/Clang Docker: GNU® GCC, LLVM®/Clang Fundamentals: Control statements, functions, strings, references, pointers, files, exceptions Object-oriented programming: Classes, objects, inheritance, runtime and static polymorphism, operator overloading, copy/move semantics, RAII, smart pointers Functional-style programming: C++20 Ranges and Views, lambda expressions Generic programming: Templates, C++20 Concepts and metaprogramming C++20 Modules: Large-Scale Development Concurrent programming: Concurrency, multithreading, parallel algorithms, C++20 Coroutines, coroutines support libraries, C++23 executors Future: A look forward to Contracts, range-based parallel algorithms, standard library coroutine support and more "C++20 for Programmers builds up an intuition for modern C++ that every programmer should have in the current software engineering ecosystem. The unique and brilliant ordering in which the Deitels present the material jibes much more naturally with the demands of modern, production-grade programming environments. I strongly recommend this book for anyone who needs to get up to speed on C++, particularly in professional programming environments where the idioms and patterns of modern C++ can be indecipherable without the carefully crafted guidance that this book provides." --Dr. Daisy Hollman, ISO C++ Standards Committee Member "This is a fine book that covers a surprising amount of the very large language that is C++20. An in-depth treatment of C++ for a reader familiar with how things work in other programming languages." --Arthur O'Dwyer, C++ trainer, Chair of CppCon's Back to Basics track, author of several accepted C++17/20/23 proposals and the book Mastering the C++17 STL "Forget about callback functions, bare pointers and proprietary multithreading libraries--C++20 is about standard concurrency features, generic lambda expressions, metaprogramming, tighter type-safety and the long-awaited concepts, which are all demonstrated in this book. Functional programming is explained clearly with plenty of illustrative code listings. The excellent chapter, 'Parallel Algorithms and Concurrency: A High-Level View,' is a highlight of this book." --Danny Kalev, Ph.D. and Certified System Analyst and Software Engineer, Former ISO C++ Standards Committee Member Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details. Note: eBooks are 4-color and print books are black and white.