ConceptClang Prototype

Hi Clang –

I have updated the work on concepts with some regression tests.
The code and all necessary documentation are or will be available from the url:

Following what seems to be Clang’s recommendation, the tests are under
CLANG_DIR/tests/Concepts/, where CLANG_DIR is the location at which you would’ve installed the downloaded package.

This said… Things are still under revision, but the following features have definitely been tested more closely:

  • Concept definitions
  • Concept maps: definitions and instantiation.
  • Associated function templates
  • Concept coverage and lookup
  • late_check
  • implicit concepts
  • explicit derivation
  • associated requirements
  • concept derivation
  • constrained templates: concept checking

Some features have been implemented to some minimal extent, and are thus sure to be a bit buggy (they have not been tested beyond simple parsing at all):

  • Concept ids as qualified name

  • associated function template

  • concept map templates

  • associated types

The following features will be fully implemented and tested before we, preferably, start soliciting more thorough Concepts-related advices/comments.

  • concept map templates
  • associated types
  • concept-based overloading

Until then, any Clang-retaled suggestion will be greatly appreciated, if you happen to get a chance to take a look at

the deployed implementation. Who knows? I’m sure there is at least a thing or two that I’m doing, some assumptions that I’m making, that could reuse clang’s current implementation better.

Yes, the Clang-code base that this is based from is a bit outdated at the moment, but I will be merging it with current updates soon-ish.
I also will be uploading recent talks on Concepts and working with Clang shortly, in the next few days.

Until then,

Thanks a lot for all the help!

– Larisse.