With the standardization of C++17, which happened officially in December 2017, we, as C++ developers, got many features to write better code.

This book describes all significant changes in the language and the Standard Library. What's more, it provides a lot of practical examples so you can quickly apply the knowledge to your projects.

About the Book

The book has its roots in the long series of articles published at my site: bfilipek.com. I started discovering C++17 a few months before it was officially published and I got more and more curious over the time. The content on the blog was growing, and I decided to make a single package of those articles.

Making the book was not so easy, though!

The initial compilation was quite weak, and I knew that to provide a valuable package for my readers I need to do more work. I rewrote each chapter of this book and reorganised them, so they contain the most relevant content. I’ve added tons of new code samples, with a better description and use cases.

I believe this book might give you a solid start into C++17.

Here are the features you’ll learn:

Part One: C++17 Language features

  • Fixes and depreciation
  • Language clarification
  • General language features
  • Templates
  • Attributes

Part Two: C++17 The Standard Library

  • std::optional
  • std::variant
  • std::any
  • std::string_view
  • String operations
  • 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 CSV Reader

The book contains now over 280 pages. I plan to rewrite a few more chapters and add some new pieces: especially with larger examples. The final version should have around 300 pages.

Plans for the final version:

  • Update and rewrite chapter about filesystem


Bartłomiej Filipek is a C++ software developer with more than 11 years of professional experience. Bartek finished Jagiellonian University in Cracow with a Masters Degree in Computer Science.

He has experience with desktop graphics applications, game development, large-scale systems for aviation, writing graphics drivers and even biofeedback.

Since 2011 Bartek has been regularly blogging at his personal website: bfilipek.com. In the early days the topic revolved around graphics programming, and now he focuses on Core C++.

In his spare time, he loves assembling trains and Lego with his little son. And he’s a collector of large Lego models.


Jonathan Boccara (fluentcpp.com)

C++17 in Detail is the ideal guide for C++ programmers who want to leverage on C++17 to write better code. The book shows the new features of the language under a practical angle, with copious details and code examples while still being accessible and easy to read. Bartlomiej Filipek's work is my go-to reference for C++17 features, and C++17 in Detail captures it all in one book.

Arne Mertz (Simplify C++!)

With a new C++ standard delivering more features to an already complex language every 3 years, it is hard to keep track and easy to get lost. With his articles and this book, Bartek provides the much needed comprehensive view on not only what has changed, but also why it has changed and how we can use it to make our code more expressive. There's nothing left to wish for except that he can keep up with the committee and deliver a C++20 version in three years ;-)

Victor Ciura (@ciura_victor)

C++17 in Detail is a whirlwind tour of the new and exciting features of the new C++17 ISO standard. Incubated from Bartek's excellent series of articles, his book properly organizes the topics and really goes into details when needed. Whether you're coming to modern C++ just now or you are a seasoned C++ developer and want to learn all the nitty-gritty of the new standard features, you'll find in this book amazing examples (minimalistic, yet practical) and explanations to help you along the way.

Free Samples

The Leanpub
45-day 100%