Boost logo

Boost :

Subject: Re: [boost] [type_traits][parameter] Inconsistent boost::is_convertible between gcc and clang
From: John Maddock (boost.regex_at_[hidden])
Date: 2012-08-18 12:03:20


>> Apologies for the delay, as I have no time right now,
>> can you please let me have this as a patch,
>> and verify our test suite passes?
>
> There three fixes for `is_convertible<From, To>` in the new code.
> A. `To` is a function type.
> B. `From` is an rvalue in C++11.
> C. `From` is an rvalue in C++03.
>
> Patches (of the code and test) for A are attached in
> https://svn.boost.org/trac/boost/ticket/7246
> Since it is trivial to fix, may I commit it?

Looks OK, yes please do go ahead.

> For B and C, I'll make patches one by one and then
> post a message (or file a ticket and attach a patch there).
>
>
>> Any changes should also probably be dependent
>> upon BOOST_NO_SFINAE_EXPR as well as I believe
>> the technique depends upon that.
>
> The current implementation does not use BOOST_NO_SFINAE_EXPR.
> Do I need to use it for the new code? The new code does not use
> more compiler functionality than the current code. It uses the same
> functionality as the current one.

I'm not sure, the old code uses:

sizeof(test_proc(variable))

The new one uses:

sizeof(test_proc(function_call()))

I'm not sure if that counts as a SFINAE expression or not, but I remember
similar code causing problems with MSVC (and probably others) when it was
tried in type traits in the past. So I'm being extra careful!

Cheers, John.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk