If you’ve ever asked “what’s in C++17 and what does it mean for me and my code?” — and I hope you have — then this book is for you.

Herb Sutter, herbsutter.com

Available also as the paperback version @Amazon and the interactive online course @Educative

C++11 was a major update for the language. With all the modern features like lambdas, constexpr, variadic templates, threading, range-based for loops, smart pointers and many more powerful elements, it was enormous progress for the language. Even now, in 2018, lots of teams struggle to modernise their projects to leverage all the modern features. Later there was a minor update - C++14, which improved some things from the previous standard and added a few smaller elements. With C++17 we got a lot of mixed emotions.

Although C++17 is not as big as C++11, it's larger than C++14. Everyone expected modules, co-routines, concepts and other powerful features, but it wasn't possible to prepare everything on time.

Is C++17 weak?

Far from it! And this book will show you why!

I spent hundreds of hours investigating how the new things work in order to make a nice and practical book for you. The book will not only save your time but also will guide you through all the nuances of the language.

The book brings you exclusive content about C++17 and draws from the experience of many articles that have appeared on bfilipek.com. The chapters were rewritten from the ground-up and updated with the latest information. All of that equipped with lots of new examples and practical tips. Additionally, the book provides insight into the current implementation status, compiler support, performance issues and other relevant knowledge to boost your current projects.

If you have experience with C++11/14 and you want to move forward into the latest C++ standard, then this book is for you.

Here are the features you'll learn:

Part One: C++17 Language features

Fixes and deprecation

Language clarification

General language features

Templates

Attributes

Part Two: C++17 The Standard Library

std::optional

std::variant

std::any

std::string_view

String Conversions

String Matching & Searchers

Filesystem

Parallel STL

Other Changes

Part Three: More Examples and Use Cases

Refactoring with std::optional

Using if constexpr

Using [[nodiscard]] attribute

How to parallelise applications

Book Mentions:

"C++17 In Detail" appeared in the Visual C++ Team Blog as suggested books for learning C++17!

Have a look: Books on C++17

Review @CppDepend Blog https://cppdepend.com/blog/?p=1180

Review @A Sawicki Blog: http://asawicki.info/news_1715_book_review_c17_in_detail.html

There's also a book page at Goodreads: C++17 In Detail @Goodreads

Other formats:

The book is also available in print at Amazon: C++17 in Detail Paperback

And also as an interactive course at Educative: C++17 in Detail: A Deep Dive

Technical details:

I optimized this book for a PDF reading experience, but other ebook formats should also look good. If you have any issues with the copies, let me know and I'll try to update the formatting.