Keynote: There Is No Silver Bullet to Solve All C++ Software Problems
summary
Compares three concrete implementations for a shape-drawing app: classic GoF OOP with virtual functions, a value-based functional solution using std::variant, and a value-semantic object design via type erasure. Builds six shape types, populates 10,000 random shapes, runs 25,000 translate ops, and benchmarks on GCC 13.2 and Clang 18.14; std::variant runs ~50–60% faster than classic OOP, type erasure outperforms classic and approaches variant speed, but variant forces templates and breaks architectural openness for extensible type sets.
AI-written summary · about
chapters (10)
- 0:00Keynote introduction
- 1:32Why this keynote differs
- 10:10Gang of Four critique
- 18:41Replacing inheritance with std::variant
- 22:58Functional programming hype
- 29:03std::variant limitations
- 33:34Progressive C++ and terminology
- 41:15Type erasure introduction
- 47:06Functional vs OO design
- 50:18Conclusion and Q&A








