C++17 in Breadth (part 2 of 2)
summary
C++17 lists concrete changes: structured bindings for unpacking pairs/arrays/tuples, function-call argument evaluations become indeterminately sequenced (fixing many UB corners), and four new parallel-friendly numeric algorithms—exclusive_scan, inclusive_scan, transform_reduce and reduce—plus parallel overloads for many std algorithms. Library additions include filesystem TS, std::optional/std::variant (with valueless_by_exception), std::any, std::string_view, apply/make_from_tuple, std::launder, and polymorphic_memory_resource with monotonic and pool strategies for runtime-selectable allocators.
AI-written summary · about
chapters (46)
- 0:00Introduction
- 0:21Structured bindings
- 2:49Include file system
- 3:33Nested namespaces
- 3:54If with initializer
- 4:57Static assert string
- 5:39Ranges and sentinels
- 6:22Explicit default constructors
- 7:05Order of evaluation
- 9:54Lifetime hints
- 11:38Library overview
- 12:00Parallelism vs concurrency
- 13:01Atomic types
- 14:07Shared mutex
- 14:49Parallel algorithms
- 19:06Mathematical functions
- 20:54Vocabulary types
- 22:59Pair and tuple
- 24:45Conditionally explicit
- 25:28Apply and make from tuple
- 26:13Optional type
- 28:21Variant type
- 32:53Any type
- 34:17String view
- 36:25Number string library
- 36:46File system library
- 39:55Type traits
- 41:20Right angle brackets
- 41:41Fold expressions
- 42:44Noexcept swap
- 43:48Invoke trait
- 44:50Unique object representation
- 45:12Void T trait
- 46:36Smart pointers
- 47:41Deducing functors
- 48:45Shared from this
- 49:27Allocator traits
- 50:29Polymorphic memory
- 53:41Incomplete type support
- 54:43In-place construction
- 55:46Default order
- 56:27Splicing nodes
- 57:30Uninitialized memory
- 58:14Library utilities
- 58:58Chrono types
- 59:20Reserved namespaces








