A Journey into Ranges, Views, Pipelines, and Currying
summary
Walks through turning a command‑line file listing (an Advent of Code day 7 example) into C++20/23 ranges pipelines using spanstream and istream_view, shows filter_view/take_view composition into a lazy pipeline (saved as a variable named DaveBrubeck) and demonstrates debugging with custom emit and eval utilities that force evaluation to inspect element‑by‑element flow. Shows currying via stacked lambdas to supply extra predicate arguments, compiles on GCC 12.3 but not on the uploader's clang setup; utilities are for debugging, not production.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 4:42Project Overview
- 6:05Ranges
- 9:17Stream
- 10:27Range
- 11:55Filter View
- 13:49Take View
- 14:48Views Namespace
- 15:34Views vs Ranges
- 19:00Pipelines
- 24:03Lambda Filter
- 26:05Pipeline Operator
- 28:35Batch Operations
- 30:44Pipeline Operators
- 34:11Limitations
- 36:04Currying
- 38:00Blind Test
- 39:13Lambda
- 44:14Rules of Thumb
related talks
38mWhat's New In C++23
46mMeandering Through C++ Creating ranges::to
01h 36mImplementing Ranges and Views in C++
59mHow to Implement the C++ Standard Library (Part 2): An Excursion into libc++
04mGeneralized fold expressions
31mGenerators, Coroutines and Other Brain Unrolling Sweetness
43m“Variadic expansion in examples"
52mA bird's eye view of a compiler
