Bjarne Stroustrup posted a note on LinkedIn about his paper “Concept-Based Generic Programming in C++” saying “I wrote a new paper that I suspect might become significant”
Concept-Based Generic Programming in C++
https://www.stroustrup.com/Concept-based%20GP.pdf
Note: the technical details covered in the paper can be found in the ISO C++ standard C++23 and C++Builder 13 brings ISO C++23 to the Modern Win64 C++ compiler !!!
Bjarne’s paper abstract
We present programming techniques to illustrate the facilities and principles of C++ generic programming using concepts. Concepts are C++’s way to express constraints on generic code. As an initial example, we provide a simple type system that eliminates narrowing conversions and provides range checking without unnecessary notational or run-time overheads.
Concepts are used throughout to provide user-defined extensions to the type system. The aim is to show their utility and the fundamental ideas behind them, rather than to provide a detailed or complete explanation of C++’s language support for generic programming or the extensive support provided by the standard library.
Generic programming is an integral part of C++, rather than an isolated sub-language. In particular, key facilities support general programming as well as generic programming (e.g., uniform notation for types, lambdas, variadic templates, and C++26 static reflection).
Finally, we give design rationales and origins for key parts of the concept design, including use patterns, the relationship to Object-Oriented Programming, value arguments, notation, concept type-matching, and definition checking.
My comments after reading the paper
Thank you for this important and timely paper! Here are a few things in the paper that made me smile 🙂 Bjarne mentioned 6 important features of a programming language:
1) Generality
2) Uncompromised efficiency
3) Statically type-safe interfaces
4) Affordable
5) Teachable
6) A living language
I enjoyed reading that we can continue to move beyond Object-Oriented Programming (without leaving it behind) 😀
I always have to laugh when I see a repeating programming language standards committee “Human Nature” pattern: “initially people ask for a LOUD syntax for novel constructs because they are seen as difficult or even dangerous. Later, the same people complain about verbosity.”
“Generic Programming”:
a) is “just” programming
b) is complementary to classical Object-Oriented Programming
c) using concepts is deeply integrated into C++, rather than being an isolated sub-language.
d) using concepts and other compile-time evaluation support enable us to build our own type systems on top of what C++ offers by default
One more thing to add:
This paper is more than just a discussion of the ISO C++ for concept-based generic programming. The paper also includes lots of code examples that you can try with your compiler.

