On May 30, 2011, at 11:02 AM, Matt Calabrese wrote:
On Sun, May 29, 2011 at 7:00 PM, Gordon Woodhull
<gordon@woodhull.com> wrote:
(Hoping that Matt Calabrese's proposed Boost.Generic will be up and running later this year!)
If you have a list of features you need and what compilers you are using, I can try to focus my efforts. I'd imagine you'll be making heavy use of associated templates, which I don't have yet, and for the time being they will only be able to work in clang as that's the only compiler I know of that currently supports template aliasing.
Well, of course until I heard your talk I had planned to do without concepts because they didn't exist. But here is the problem I am trying to solve; perhaps you can tell me if this is possible.
A system of objects at compile time is a graph of types and their relations. Where I am hoping concepts will help is to be able to define abstractly what sort of interfaces exist between these types, and then validate that the concrete implementation meets the concepts.
So, I think this requires carrying concepts as metadata in the edges of a compile-time graph specified by the Metagraph user, and then traversing both the abstract and the concrete graphs validating the types against the concepts they are supposed to implement.
Is this possible? Or am I thinking about the problem the wrong way?
I am okay with clang-only for now since I'm only doing validation. I don't think I would try to use concept maps or archetypes in a first pass, although those will surely help in the long run.
Thanks,
Gordon