C++17: All You Need to Know is a three-day online training course with programming examples taught by Vittorio Romeo. It is offered online from 11AM to 5PM Eastern Time (EDT), Monday September 21st through Wednesday September 23rd, 2020 (after the conference).
This course will cover all the most important additions in C++17, the latest C++ standard.
Both the core language and the library have been extended with new features that significantly reduce the likelihood of bugs, improve readability and maintainability of code, and enable new powerful programming paradigms.
Throughout lectures, quizzes, and real-life usage examples, the audience will understand the great value C++17 brings to the table and will be able to immediately start taking advantage of it in their projects.
Good knowledge of C++11.
- Quality of life improvements – All the “minor” C++17 language features that can be immediately applied to improve code readability and quality
- Preventing bugs with new attributes – Covers C++17 “attributes”, including the extremely useful `[[nodiscard]]`, which prevents real-life critical bugs
- Destructuring data with “structured bindings” – Covers “structured bindings”, which allow to destructure data structures with terse syntax
- Class template argument deduction – Covers one of the biggest C++17 features, which allows classes to be instantiated without specifying template arguments
- Code generation with “fold expressions” – Covers a major improvement in code generation using functional folds
- Performance boost via “copy elision” – Covers a change to the object model which automatically eliminates copies and moves, greatly increasing performance
- Simple compile-time branching: `if constexpr` – Covers another major feature, which allows to branch at compile-time using an intuitive imperative syntax
- Algebraic data types – Covers `std::optional` and `std::variant`, and how to use them effectively to improve type safety and make invalid states unrepresentable
- Other features – Covers all the remaining features which are less commonly used but still extremely useful in particular contexts
Vittorio Romeo (B.Sc. Computer Science) has been a Software Engineer at Bloomberg for more than 3 years, working on mission-critical company C++ infrastructure and providing Modern C++ training to hundreds of fellow employees.