Generic Programming with Concepts Lite, Part I
summary
Concepts Lite claims to move constraints into declarations so template arguments are checked at the point of use using a requires clause, giving readable, earlier diagnostics and enabling overloads and partial specialization for open extension. A working implementation lives in a GCC 4.10 branch (with users and bugs) and library support is experimental (see Origin C++ Libraries). Constraints are lexical, substitution failures map to false, there is no added runtime cost, and compiles can be faster than heavy enable_if metaprogramming.
AI-written summary · about
chapters (8)
- 0:00Start
- 0:39Overview
- 2:18Concepts design
- 5:33Implementation contributors
- 7:50Generic programming
- 9:47Dynamic typing
- 34:42Constraint diagnostics
- 45:53Checking constraints
related talks
01h 04mC++ Concepts
01h 01mBack to Basics: Concepts in C++
01h 02mDiscovering a User-Facing Concept
01h 01mConcepts vs Typeclasses vs Traits vs Protocols
01h 11mC++20 Templates: The next level: Concepts and more
01h 02mDiscovering a User-Facing Concept
06mLightning Talk: C++20 - A New Way of Meta-Programming?
07mLightning Talk: Higher-Order Template Metaprogramming with C++23
