Boost logo

Boost :

From: Johan Torp (johan.torp_at_[hidden])
Date: 2008-05-08 03:58:27


Terje Slettebø wrote:
>
>>From: "Anthony Williams" <anthony_w.geo_at_[hidden]>
>> Does the boost concept checking library support overloading on concepts,
> so
>> you can have one implementation of an algorithm for random access
> iterators,
>> and another for bidirectional iterators, for example?
>
> As someone was pointed out in another posting, you can't use BCCL for
> this,
> since the checks fail with a compile error if a concept doesn't match.
> However, if you're able to define compile-time traits performing the
> concept
> check, then you _can_ overload on concepts, using enable_if. See the
> Concept
> Traits Library
> (http://web.archive.org/web/20050428001254/http://neoscientists.org/~tschwin
> ger/boostdev/concept_traits/libs/concept_traits/doc/) for an approach to
> this.
>
> This library is no longer maintained (at least by me, and unfortunately I
> don't have the source available right now, but Tobias Schwinger may have
> it
> around somewhere), not at least due to the upcoming C++0x, where this is
> supported in the language.
>
> The above library was mostly an experiment about how to get support for
> concepts in a library solution, but you really need language support to
> get
> the full effect of concepts.
>

That's really interesting and exactly what I was looking for a while back!
According to David Abrahams
(http://www.nabble.com/forum/ViewPost.jtp?post=15220025&framed=y) you can't
implement all requirements of all concepts as traits though. Did you bump
into this? What kind of requirements can't be implemented as traits?

I'll have a look at your library later on today.

Best Regards, Johan

-- 
View this message in context: http://www.nabble.com/Overloading-on-concepts-tp17104187p17122251.html
Sent from the Boost - Dev mailing list archive at Nabble.com.

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk