Books on C++17

This post is part of a regular series of posts where the C++ product team here at Microsoft and other guests answer questions we have received from customers. The questions can be about anything C++ related: MSVC toolset, the standard language and library, the C++ standards committee, isocpp.org, CppCon, etc. Today’s post is by Marian Luparu.

C++17 is an important evolution of the C++ language, and you may be wondering how you should get started learning about it. On our blog, you will always find the latest announcements related to our team’s work on C++17 and future standards and, as part of this new series, advice on any C++17 related topics you’ve asked us about. But many of you may also want the more systematic approach to learning, an approach that books can give you when absorbing such a large topic.

Here are three books, written by our Microsoft MVPs, that can be good starting points to get yourself familiar with C++17

Professional C++, 4th edition, by Marc Gregoire

“Professional C++” is the advanced manual for C++ programming. Designed to help experienced developers get more out of the latest release, this book skims over the basics and dives right in to exploiting the full capabilities of C++17. Each feature is explained by example, each including actual code snippets that you can plug into your own applications. Case studies include extensive, working code that has been tested on Windows and Linux, and the author’s expert tips, tricks, and workarounds can dramatically enhance your workflow. Even many experienced developers have never fully explored the boundaries of the language’s capabilities; this book reveals the advanced features you never knew about, and drills down to show you how to turn these features into real-world solutions.

C++ is notoriously complex, and whether you use it for gaming or business, maximizing its functionality means keeping up to date with the latest changes. Whether these changes enhance your work or make it harder depends on how well-versed you are in the newest C++ features. Professional C++ gets you up to date quickly, and provides the answers you need for everyday solutions.

The Modern C++ Challenge: Become an expert programmer by solving real-world problems, by Marius Bancila

C++ is one of the most widely-used programming languages and has applications in a variety of fields, such as gaming, GUI programming, and operating systems, to name a few. Through the years, C++ has evolved into (and remains) one of the top choices for software developers worldwide. This book will show you some notable C++ features and how to implement them to meet your application needs. Each problem is unique and doesn’t just test your knowledge of the language; it tests your ability to think out of the box and come up with the best solutions. With varying levels of difficulty, you’ll be faced with a wide variety of challenges. And in case you’re stumped, you don’t have to worry: we’ve got the best solutions to the problems in the book. So are you up for the challenge?

This book will appeal to C++ developers of all levels. There’s a challenge inside for everyone.

C++17 in Detail, by Bartłomiej Filipek

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!

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 know a bit of C++11/14 and you want to move forward into the latest C++ techniques, then this book is for you.

What other good C++17 books would you recommend to someone that is just getting started with C++? How about a C++ expert that hasn’t looked at C++17 yet?