Pipeline architectures in C++
summary
Claims an actual framework: a custom pipeline built around std::expected (C++23) with an overloaded pipe operator, plus a parallel variant using synchronized queues and detached worker threads. Demonstrations load embedding vectors, normalize, compute cosine distances, and return best match; examples run and produce results. Explains monadic ops (transform/or_else/transform_error) and error-composition via std::variant. Notes practical caveats: UB if value() is used without has_value, and some tradeoffs versus raw performance.
AI-written summary · about
chapters (11)
- 0:00Pipeline architectures intro
- 2:14What is a pipeline
- 7:10Ranges library basics
- 13:38Deep dive in std::expected
- 21:49Building pipeline with std::expected
- 26:07Real-world image similarity
- 36:18Monadic ops in std::expected
- 41:02Handling multiple error types
- 45:29Parallelizing pipelines
- 53:24Related work and alternatives
- 55:12Conclusions and future
related talks
01h 01mPipes: How Plumbing Can Make Your C++ Code More Expressive
57mPipeline-oriented programming
01h 05mThe Imperatives Must Go!
01h 00mDesign Idioms from an Alternate Universe
53mAsync sequences and algorithms to compose them
01h 04mA Pattern Language for Expressing Concurrency in Cpp
01h 04mEffective Ranges: A Tutorial for Using C++2x Ranges
01h 32mHow C++23 changes the way we write code
