Indiana University Bloomington

Luddy School of Informatics, Computing, and Engineering

Technical Report TR703:
A Uniform Terminology for C++ Concepts

Larisse Voufo, Andrew Lumsdaine
(Jan 2013), 11 pages pages
[This paper is intended to help ongoing discussions about design and implementation of concepts for C++.]
The purpose of this note is to specify a uniform terminology for the design and implementation of concepts for C++, based on influential literature on generic programming with concepts. The terminology results from an ongoing work in specifying an infrastructure for implementing C++ concepts, called ConceptClang. We solicit feedback and hope that the terminology will facilitate conversations about C++ concepts as efforts in language support for the feature in question evolve. In this specification, we define each term with an explanation of the rationale behind it, especially when it may conflict with existing terminology, and relate it to ongoing design and implementation efforts. The process highlights key components of the concepts feature and their diverse relationships with either structural or named conformances for matching types to concepts.

Available as: