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.
- 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