ConceptClang: an implementation of C++ concepts in Clang

  • Authors:
  • Larisse Voufo;Marcin Zalewski;Andrew Lumsdaine

  • Affiliations:
  • Open Systems Lab, Indiana University, Bloomington, IN, USA;Open Systems Lab, Indiana University, Bloomington, IN, USA;Open Systems Lab, Indiana University, Bloomington, IN, USA

  • Venue:
  • Proceedings of the seventh ACM SIGPLAN workshop on Generic programming
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Concepts are a proposed C++ extension for constraints-based poly-morphism. In this paper, we present our experience implementing an infrastructure for exploring concept designs based on Clang--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.