C++17 standard: https://www.iso.org/standard/68564.html
Changes between C++14 and C++17 are described at: https://isocpp.org/files/papers/p0636r0.html
A couple of sites to look at, the first one with a collection of changes, with code examples, across C++11/C++14/C++17...
https://www.codingame.com/playgrounds/2205/7-features-of-c17-that-will-simplify-your-code/introduction
References to C++17 at : https://en.cppreference.com/w/
String conversions.
Optional, variant.
Special maths functions...
Filesystem library.
File system is one C++17 feature that isn’t fully available under gcc version 7.5.0, as on capa.
Structured binding declaration: https://en.cppreference.com/w/cpp/language/structured_binding
Lots more at: https://en.cppreference.com/w/cpp/compiler_support
There are already a lot of references to C++20 at : https://en.cppreference.com/w/
Feature test macros.
Formatting library.
Concepts library.
Ranges library.
Synchronised output wrappers, for device and for stream.
Atomic references.
We recently covered iterators as part of STL.
Those six kinds are now all Legacy iterators:
LegacyInputIterator, LegacyOutputIterator, LegacyForw ardIterator, LegacyBidirectionalIterator, LegacyRandom AccessIterator, and LegacyContiguousIterator (since C++17).
Ranges are to help avoid the problem of needing a pair of iterators to specify a range of elements.
Maybe something on this in 2021 ...