
From: "Anthony Williams" <anthony_w.geo@yahoo.com>
Does the boost concept checking library support overloading on concepts, so and 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
Hi Michael. Thanks for your kind remarks. (Having been away from the C++ community a few years, I get reminded of how great it is.) I've put the library here: http://home.broadpark.no/~terjesl/files/concept_traits_original.zip http://home.broadpark.no/~terjesl/files/concept_traits.zip The first one is the original version. Tobias Schwinger has done a lot of work with the library, speeding up the compilation a lot. However, I don't know how finished it is, but the second link above is the latest version I have of the new version, although Tobias may have a newer one. Nevertheless, the first one has been tested, it has the same interface as the new version, and it might be easier to understand (as it uses Boost.MPL for the metaprogramming), so it might be best to start experimenting with that one. The library includes documentation, examples and unit tests. It's not a Boost library, but it uses the same directory structure and naming conventions as Boost, allowing it to work well together with Boost (and it depends on a few Boost libraries, as well, such as Boost.MPL and Type Traits). The library includes traits for all the documented concepts in the C++ standard, as well as the MPL concepts. Feel free to contact me off list if you have any questions or comments about it. Regards, Terje ----- Original Message ----- From: "Michael Fawcett" <michael.fawcett@gmail.com> To: <boost@lists.boost.org> Sent: Wednesday, May 07, 2008 10:48 PM Subject: Re: [boost] Overloading on concepts On Wed, May 7, 2008 at 2:15 PM, Terje Slettebø <tslettebo@broadpark.no> wrote: 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 looks extremely interesting. I needed this a few months ago, and was disappointed when I discovered that you couldn't do this with BCCL. I would love if this was made available somehow. --Michael Fawcett _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost