
On Sun, Dec 4, 2011 at 10:23 AM, Lorenzo Caminiti <lorcaminiti@gmail.com>wrote:
Hello all,
What's the difference between using a Boost.Parameter type predicate and using a concept?
I think parameter type predicates are unary metafunctions used to resolve the function call, concepts are asserted on the type after the call has been resolved... Is there more? Can I always do with type predicates what I can do with concepts? Is there ever a reason to use/need both?
[...] I'd imagine some concepts checking classes cannot be translated into a strictly equivalent metafunction, especially for C++03. Also, the error message typically generated for a failed Boost.Concept assertion might be more desirable than that for a failing to find a compatible overload due to the use of SFINAE and metafunctions. - Jeff