“Concepts: The Future of Generic Programming (the future is here)”
summary
Concepts are now usable, implemented in GCC and Clang and slated for C++20, and they let templates be constrained by readable predicates rather than fragile SFINAE hacks. Expect clearer overload resolution for algorithms and ranges, faster compilation, and zero-overhead compile-time checks that simplify enable_if-heavy code. Design guidance: name and refine high-level concepts (avoid ad hoc “requires requires”), start with incomplete concepts and evolve them, use static_asserts and archetypes to test interfaces.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 0:16Speaker Introduction
- 0:45The History of Concepts
- 1:13Generic programming goals
- 5:21C++20 Status
- 22:11Benefits of Concepts
- 22:40Designing with Concepts
- 26:03Real-world examples
- 38:35History of Concepts
- 39:59What is a concept
- 40:28Building useful concepts
- 48:59Design Principles
- 49:10Q&A and Conclusions
related talks
52mConcepts: The Future of Generic Programming
54mC++ Concepts for Developers
59mMetaprogramming: From Templates to Concepts
01h 28mC++ Concepts "Lite" in Practice
01h 27mC++20 Templates - the Next Level: Concepts and More
01h 00mConcepts in C++20: Revolution or Evolution
55mHow to Implement Your First Compiler Feature:The Story of Concepts in Clang
01h 14mReintroduction to Generic Programming for C++ Engineers
