
At Tue, 14 Dec 2010 12:02:59 -0500, Matt Calabrese wrote:
On Tue, Dec 14, 2010 at 10:33 AM, Steven Watanabe <watanabesj@gmail.com>wrote:
I believe that it wasn't an issue for the C++0x concept proposals, because the concept maps for both left and right would depend on being able to find a concept map for base.
Ah thanks, Steven, I misremembered apparently. Just to get this straight, what you're saying is that if someone were to make a concept map for a random access iterator they'd have to first explicitly make concept maps for iterator, input iterator, forward iterator, and bidirectional iterator?
I don't think so. Take a look at https://svn.osl.iu.edu/svn/hlo/trunk/gcc/libstdc++-v3/include/bits/iterator_... for reference; search for "X*". You'll see there's only one concept map for X*, to RandomAccessIterator.
That should solve the problem, albeit somewhat tedious for people creating models of concepts. That's also much easier to implement than my current approach of having the concept map for the refinement act as the concept map for the parent concept, so I'll probably follow that route.
I should just look at the concept proposals from now on for reference. No sense in putting in a lot of work to just come to the same conclusions with likely similar rationale.
Good thought. -- Dave Abrahams BoostPro Computing http://www.boostpro.com