From: Terje Slettebø (tslettebo_at_[hidden])
Date: 2008-05-07 14:15:27


>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.

Regards,

Terje