Leanpub.com, 2022. — 762 p.
C++20 is the next evolution in modern C++ programming, which will be supported step-by-step by the latest version of gcc, clang, and Visual C++. C++20 is a big step, maybe even larger than C++11.
It contains a couple of new key features (modules, concepts, ranges, corountines) plus several small but valuable language and library features, which will change the way we program in C++. As usual, not everything is self-explanatory, combining new features gives even more power, and there are hidden traps.
This book presents all the new language and library features of C++20. It covers the motivation and context of each new feature with examples and background information. The focus is on how these features impact day-to-day programming, what it means to combine them, and how to benefit from C++20 in practice.
Preface
About This Book
Comparisons and Operator
Placeholder Types for Function Parameters
Concepts, Requirements, and Constraints
Concepts, Requirements, and Constraints in Detail
Standard Concepts in Detail
Ranges and Views
Utilities for Ranges and Views
View Types in Detail
Spans
Formatted Output
Dates and Timezones for
std::jthread and Stop Tokens
Concurrency Features
Coroutines
Coroutines in Detail
Modules
Lambda Extensions
Compile-Time Computing
Non-Type Template Parameter (NTTP) Extensions
New Type Traits
Small Improvements for the Core Language
Small Improvements for Generic Programming
Small Improvements for the C++ Standard Library
Deprecated and Removed Features
Glossary
Index