$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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.