Boost logo

Boost :

Subject: Re: [boost] [type_traits][parameter] Inconsistent boost::is_convertible between gcc and clang
From: John Bytheway (jbytheway+boost_at_[hidden])
Date: 2012-08-11 23:25:27


On 10/08/12 23:57, Jeffrey Lee Hellrung, Jr. wrote:
> On Wed, Aug 8, 2012 at 8:59 PM, John Bytheway <jbytheway+boost_at_[hidden]>wrote:
<snip>
>> Reading the docs for boost::is_convertible I think the clang
>> interpretation is closer to the intention, in which case the gcc
>> implementation is wrong, and so is Boost.Parameter (which relies on this
>> behaviour).
>>
>> On the other hand, I suspect there's probably other code out there that
>> depends on this in a similar way to Boost.Parameter,
>
> Well, *technically*, such other code would be depending on an
> *implementation*, let's say, "feature", that is, according to your reading,
> undocumented.

Indeed. It would be nice, however, to have a clearer indication of what
exactly the intended behaviour is. However this is resolved, I guess
the docs should be cleaned up too.

>> so perhaps it would
>> be safer to tweak the clang implementation instead, and deviate from
>> std::is_convertible.
>
> Other code aside, I believe the correct thing to do would be to put the gcc
> implementation more in line with the clang, std, and Boost-documented
> behavior. Maybe make the change to the gcc implementation and see what
> fails within Boost first?

Sounds reasonable. I'll see if I can at least run the type_traits tests
and see what happens.

John


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