Subject: Re: [boost] [TypeTraits] propose new callable-type call traits
From: Hui Li (hui.li_at_[hidden])
Date: 2014-01-12 08:29:24
On Jan 12, 2014, at 4:54 AM, John Maddock <john_at_[hidden]> wrote:
> I think that might make an excellent addition to type_traits - however, I have no time at present to do anything on this myself, so you would have to provide a complete solution, including docs and tests etc.
I would provide a complete solution including docs and tests. But i will have to learn how to do things the boost way since this would be my first contribute. Would appreciate if anyone could point me to some general guidelines and maybe also on for example how to work with boost Github etc.
> As others have mentioned, reliance on SFINAE-expressions is an issue because msvc still doesn't fully support this.
As for SFINAE-expression, I agree with Tongari J. that it seems necessary to be able to distinguish ambiguous and non-viable calls. Do you maybe have any ideas for workaround? Is it unacceptable if it doesn't support those compilers like msvc?
> Other than that, we probably should have one eye towards programming in C++11 these days...
I'm not sure if my implementation should have the same user interface as boost::has_call (since it came to existence first).
I suppose mine could've looked like this:
1. has_valid_call<T, R(Args...)> // same as boost::has_call<T, R(Args...)>
2. has_ambiguous_call<T, R(Args...)> // R is ignored
3. has_no_viable_call<T, R(Args...)> // R is ignored
Or maybe i could extend boost::has_call by adding has_ambiguous_call<T,R(Args...)> and has_no_viable_call<T,R(Args...)> (for c++11 only though). I think it may be better than providing another standalone implementation that has overlapping functionalities with boost::has_call.
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk