C++17 Features (part 1 of 2)
summary
C++17 consolidates practical language changes: structured bindings let auto [x,y] = point3 to name members (and work with tuples/arrays); selection statements with initializers allow if (auto it = m.find(k); it!=m.end()) scoping; if constexpr enables compile-time branches and replaces some SFINAE/tag dispatch; fold expressions collapse variadic recursion into single operators; class template argument deduction plus deduction guides infer template types; inline variables fix ODR for header constants; guaranteed copy elision makes certain returns legal; constexpr lambdas and unary static_assert simplify metaprogramming.
AI-written summary · about
chapters (13)
- 0:00Introduction to C++17
- 1:09Structured bindings explained
- 5:51If with initializers
- 10:54If constexpr feature
- 18:42Fold expressions in C++17
- 25:35Class template argument deduction
- 31:25Auto non-type template parameters
- 35:29Inline variables in C++17
- 37:18Constexpr lambdas
- 41:09Static assert improvements
- 42:14Mandatory RVO
- 43:38Nested namespaces
- 44:01Has include preprocessor
related talks
01h 00mC++17, part 1: The Language Features
58mC++17 in Practice - The good and the ugly
01h 00mInference in C++: The big picture
58mExploration of C++20 Meta Programming
57mIntroduction to C++ Template Metaprogramming
59mThe Best Parts of C++
01h 13mC++ Templates Revised
01h 27mC++20 Templates - the Next Level: Concepts and More
