Design Patterns in Modern C++
summary
Shows concrete rewrites: an adapter wrapping std::string adds a discoverable split and hides confusing members, working but costing duplication and discoverability; a range-based connect trick treats scalars as iterable to wire neurons, which compiles with MSVC quirks and pays a runtime cost; the specification objects replace combinatorial filter functions and scales without touching existing code; fluent and multi‑facet builders produce near‑HTML and Person APIs; a maybe<T> monad using pointers implements null‑safe chaining via lambdas, usable but verbose and type‑tricky.
AI-written summary · about
chapters (33)
- 0:00Introduction
- 2:48SteelString
- 6:30Open Closed Principle
- 8:27Evil
- 10:14Extension Functions
- 16:15Scalars
- 17:51Unimplemented
- 19:59API Usage
- 20:19OpenClosed Principle
- 21:19Example
- 23:51Breaking OCP
- 24:44Specification Pattern
- 26:12Product Filter
- 26:45Making Specification
- 28:29Combining Specification
- 30:58Simple Filtering
- 31:59Groovy Style Builders
- 32:37Structured Data
- 33:08List Items
- 35:38Improved model
- 37:04Groovy style
- 37:19HTML structure
- 37:34Generalization
- 39:11Limitations
- 40:33fluent calls
- 40:59builder patterns
- 42:50several builders
- 43:18multiple builders
- 49:23presence
- 52:30implicit
- 53:18MaybeT
- 54:54MaybeT Construction
- 55:31MaybeP Construction
related talks
01h 28mModern C++ Design reloaded
43mDesign Patterns - The Most Common Misconceptions (1 of N)
01h 40mDesign Patterns: Examples in C++
01h 00mC++ Design Patterns: From C++03 to C++17
01h 03mMonads in Modern C++
47mDesign Patterns - The Most Common Misconceptions (2 of N)
58mOO Considered Harmful
01h 02mFunctional C++
