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
- 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
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.
Thanks a lot for all the help!