Despite what you think, concepts are real and they're coming. If you dislike the Concepts Lite approach, you're not alone, but that's what we're getting. It's certainly not all that C++0x concepts were, but there's some good things about that, and having built a non-trivial concepts-based library
The advantages language-based concepts provide are multi-phase checking and concept mapping, two features that concepts lite currently does not provide. Multi-phase checking could be added in the future, but concept mapping is somewhat complicated with concepts lite's current design.
(range-v3 uses a Concepts Lite emulation layer), it's really not bad. Range-v3 would be impossible without something like concepts, and real language support will help immensely, IMO.
I don't think you can compare library-based concepts to concepts lite. Library-based concepts(such as in ranges-v3) is a very natural and evolutionary step forward for concept checking. However, concepts lite has many surprises(and workarounds), in addition to the complications for future features of the language(such as concept mapping or type erasure), which stems from its core design of subsuming and propositional logic. We do need a language feature for concepts, but concepts lite is not it. I, as a library writer, will probably continue to use library-based concepts with a concepts lite C++ since it provides better composability and less surprises(even if it requires some macros).
Maybe that's because it has usability problems, and doesn't actually solve the problems concepts are intended to solve. You can't do concepts-based overloading with Boost.Concepts, for instance. Boost.Concepts gives only hard errors.
Exactly. One of the goals of concepts is to produce less error output, which Boost.ConceptCheck does not achieve. Paul -- View this message in context: http://boost.2283326.n4.nabble.com/Another-variant-type-was-peer-review-queu... Sent from the Boost - Dev mailing list archive at Nabble.com.