“Moving to C++17: The New Language and Library Features” is a one-day training course with programming examples taught by Nicolai Josuttis. It is offered at the Meydenbauer Conference Center from 9AM to 5PM on Sunday, September 24th, 2017 (immediately prior to the conference). Lunch is included.
C++17 is the next evolution in modern C++ programming. Although it is not as big a step as C++11, it contains a large number of small and valuable language and library features, which will change the way we program in C++. This one-day tutorial presents all the new language and library features in C++17. We’ll cover the motivation and context of each new feature with examples and background information. We’ll focus on how these features impact day-to-day programming and how to benefit from them in practice.
Students are expected to have a basic knowledge of C++ including C++11.
Students are not required to bring any laptop. We will go through exercises together with the laptop of the presenter.
History of C++17
Language features such as:
- Structured Bindings
- Inline variables
- New control structures (e.g. constexpr if)
- New aggregate rules
- Improvements for constexpr
- Mandatory RVO and copy elision
New template features:
- Fold expressions
- Class template argument deduction
- Non-type templates with placeholder types
- std::any, std::variant, and std::optional
- Filesystem library
- Parallel STL algorithms
- Container improvements
- New algorithms and utility functions
- Small library features
Other bug fixes and notable enhancements
- Expression evaluation order
- Type system improvements
- Deprecated and removed features
Effects when combining multiple features
Nicolai Josuttis (www.josuttis.com) is an independent systems architect, technical manager, author, and consultant. He designs mid-sized and
large software systems for the telecommunication, traffic, finance, and
He is well known in the C++ Community for speaking and writing with
authority about C++ (being the author of The C++ Standard Library and
C++ Templates) but is also an innovative presenter.
He is an active member of C++ standardization committee for almost 20