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.
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition







