

Modern C++ Programming Cookbook – Third Edition
source link: https://mariusbancila.ro/blog/2024/03/04/modern-cpp-programming-cookbook-third-edition/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Modern C++ Programming Cookbook – Third Edition
The Third Edition of my book, Modern C++ Programming Cookbook (ISBN 978-1835080542) has been published by Packt. The book can be ordered from Amazon and Packt.
The book is organized in recipes, much like a cookbook. These recipes, in turn, are organized in sections that introduce you to the topic, list any necessary pre-requisites and then explain how to do something and how that works. This second edition comes with more than 150 recipes covering language and library features from C++11/14/17/20/23, including the libraries for strings, containers, algorithms, iterators, input/output, regular expressions, threads, filesystem, date and time, atomic operations, and utilities. Besides that, there is a chapter for patterns and idioms and one dedicated for testing frameworks, that covers everything you need to know to get started with Boost.Test, Google Test and Catch2. There is also a entire new chapter for the C++20 major features: modules, concepts, coroutines, and ranges.
This third edition, is an update that covers the new C++23 standard, but includes other topics too. There are 23 new recipes and as many updated ones. The C++23 features discussed in the book include:
- stacktrace library
std::expected
std::mdspan
std::optional
monadic operations- span buffers
if consteval
- range adaptors
std::generator
- multidimensional subscript operator
std::to_underlying()
andstd::is_scoped_enum
std::print()
andstd::println()
#warning
,#elifdef
,#elifndef
[[assume]]
attribute- static constexpr variables
Apart from these, there are also new recipes on C++20 topics not covered before:
std::source_location
- sync streams (
std::osyncstream
) - constexpr virtual functions
- cmp_ functions (
std::cmp_equal
,cmp_not_equal
,cmp_less
,cmp_greater
,cmp_less_equal
,cmp_greater_equal
) - abbreviated function templates
But this is not all, there are more changes, including:
- usage examples for all range adaptors
- more patterns/idioms: mixins and type erasure
- tips for selecting the right standard container
- character and string types
- fixed examples for features that were changed after publishing the 2nd edition, such as chrono library types, text formatting library, and coroutines
Overall, the Third Edition is a significant update of the book. It is intended to help you learn what’s new in C++23, but not only.
All the code snippets from the book, are available in this Github repo.
I hope you will enjoy the book and find it helpful for learning new things about C++. Your feedback/review of the book is always welcomed.
Like this:
</div
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK