Abstract

Concepts are a proposed C++ extension for constraints-based polymorphism. In this paper, we present our experience implementing an infrastructure for exploring concept designs based on Clang’s an LLVM frontend for the C family of languages. We discuss how the primary proposed features of concepts (such as concept-based lookup, overloading and constrained templates) are implemented in Clang, and how our implementation can be extended to support the different approaches suggested within the C++ community. Some illustrations are presented and include a subset of the Boost Graph Library.