All the new language and library features of C++17.C++17 is the next evolution in modern C++ programming, now supported by major c++ compilers g++, clang, and Visual C++. Although adopting C++17 it is not as big a step as adopting C++11, C++17 does contain a large number of valuable language and library features, which support and change the way we program in C++.
As usual, not everything is self-explanatory, combining new features gives you even more power, and there are hidden traps.The book covers the motivation for and context of all new C++17 features (covering both language and library) with many examples and unique background information for application programmers as well as library developers. The focus is on how these features impact day-to-day programming, what effect combining features can have, and how you can benefit from them in practice.
"It's very clearly written, and the examples are really helpful!"
"I am thoroughly enjoying the book; I had skimmed the list of changes in C++17 several times before but until I started reading this book, I had no idea how substantial the changes really were. It makes me wonder what I overlooked with previous updates!"
"I thought I knew a bit about C++. I downloaded this book and learned something new in the preface. Highly recommended so far!"
1. Structured Bindings
2. if and switch with Initialization
3. Inline Variables
4. Aggregate Extensions
5. Mandatory Copy Elision or Passing Unmaterialized Objects
6. Lambda Extensions
7. New Attributes and Attribute Features
8. Other Language Features
Part II: Template Features
9. Class Template Argument Deduction
10. Compile-Time if
11. Fold Expressions
12. Dealing with String Literals as Template Parameters
13. Placeholder Types like auto as Template Parameters
14. Extended Using Declarations
Part III: New Library Components
19. String Views
20. The Filesystem Library
Part IV: Library Extensions and Modifications
21. Extensions of Type Traits
22. Parallel STL Algorithms
23. New STL Algorithms in Detail
24. Substring and Subsequence Searchers
25. Other Utility Functions and Algorithms
26. Container and String Extensions
27. Multi-Threading and Concurrency
28. Other Small Library Features and Modifications
Part V: Expert Utilities
29. Polymorphic Memory Resources (PMR)
30. new and delete with Over-Aligned Data
31. std::to_chars() and std::from_chars()
33. Improvements for Implementing Generic Code
Part VI: Final General Hints
34. Common C++17 Settings
35. Deprecated and Removed Features