C++17 in detail: Summary & Bonus
Table of Contents
The last post in the series about C++17 (STL utils) was posted on 4th September. It happened to be just two days before the final C++17 spec was approved! :)
C++17 is formally approved
2017-09-06 by Herb Sutter
In this post, I’d like to make a little summary, and I also have a bonus for you :)
We ended up with 8 articles:
- Fixes and deprecation
- Language clarification
- Library changes - Filesystem
- Library changes - Parallel STL
- Library changes - Utils
And today is the Wrap-up, Bonus.
Do you like the new standard?
Probably we expected a bit more. Still, it’s a really decent update! The committee made a change when comes to the “shipping” process. Rather than waiting for all the great features to be completed (as it happened with C++11) they now set a deadline. If a feature is not done for a specific schedule, then it will just move to the new spec - so in next 3 years.
I am convinced the features we get with the release make a real change of how we write cpp code. So now we have to learn how to use the new stuff effectively.
What I like the most:
constexpr if- very powerful tool, allows you to write template/metaprogramming code in a similar way to the ‘standard’ code.
- Structured bindings - moves C++ closer to dynamic languages
- Template argument deduction for class templates and other template features
- Filesystem - a significant portion of the library, that will make code much easier and common across many platforms.
- Type safe helpers:
std::variant- we can now replace
void*or C style unions. The code should be safer.
- String features: like
string_view, string conversions, searchers.
- Parallelism - very powerful abstraction for threading.
Thoughts on the series
First of all thanks for reading my content! The whole series got very popular, as each post got around 15..20k views in the first weeks. Some even more (like Code Simplification got 50k views! or fixes and deprecation 28k views!).
For me, it was not only a great chance to learn about the standard, but I’m also more convinced that I like writing such content. Reading the spec, gathering new info, writing examples… great fun! :)
Ok… but I know you’re waiting for the bonus… so here it is :)
As I mentioned in my newsletter, I could spend some time and merge all of the posts into one ebook.
And this is what I did :)
The ebook is mostly the merge, but with some little updates, reorganization. The format will make it much easier to read than browsing through the posts.
I ended with more than 50 pages!
Hmm… maybe I should sell it for 1000$ and get rich quickly? :)
OK, maybe 1k $ would be too much. So I decided just to make one requirement to have this ebook: just subscribe to my mailing list, the book then comes for free. (existing subscribers got an email with the link to download, so no action needed for them).
Let me know if you find typos, mistakes in the text. I am happy to update the text, and I’ll send an update.
- C++17 in details: Standard Library Utilities
- C++17 STL Cookbook Book Review
- C++17 in details: Parallel Algorithms
- C++17 in details: Filesystem
- C++17 in details: Code Simplification