Concepts: The Future of Generic Programming
summary
C++ gains named concepts that act as concepts are compile-time predicates to constrain templates, fix horrible template errors, and enable overload resolution that picks the fastest algorithm (e.g. O(1) advance for random access vs O(n) for lists). Implementation uses requires-expressions, named concepts, and standard-library concepts (ranges, iterators); compilers ship it (implemented in GCC for about three years) and it enters C++20, with zero runtime overhead and practical production use.
AI-written summary · about
chapters (40)
- 0:00Introduction
- 1:12How do you value programming
- 1:47Generic programming
- 3:09What is generic programming
- 4:22Why we need generic programming
- 6:28C
- 8:40Templates
- 9:55Sortable
- 11:39Lists
- 12:58Concepts
- 16:20Example
- 18:14Title slides
- 18:30Defining concepts
- 19:57Defining equality comparable
- 21:36Sequence definition
- 22:27Partial incomplete concepts
- 23:15Finding concepts
- 25:00Semantics
- 25:33Multi Arguments
- 26:58Merge
- 27:30Template checking
- 30:02Range checking
- 30:45History
- 32:58Impala
- 33:09Advance
- 36:36Voidstar
- 36:58Typename
- 37:56Plug and Play
- 38:39Input Channels
- 39:33Concrete Suggestions
- 40:50Expectation
- 41:36Twitter
- 41:54Biggest regret
- 42:55Life advice
- 43:44Java vs C
- 45:47C vs JavaScript
- 47:33What do you do
- 48:28What language is most elegant
- 49:40Interface vs Duck Typing
- 50:29Go Language
related talks
01h 39m“Concepts: The Future of Generic Programming (the future is here)”
54mC++ Concepts for Developers
01h 00mConcepts in C++20: Revolution or Evolution
01h 11mConcepts in 60: Everything you need to know and nothing you don't
59mMetaprogramming: From Templates to Concepts
01h 28mC++ Concepts "Lite" in Practice
01h 27mC++20 Templates - the Next Level: Concepts and More
01h 07mConcepts As She Is Spoke
