Boost logo

Boost :

Subject: Re: [boost] [config] BOOST_NO_SFINAE_EXPR and GCC 4.6.4
From: Agustín K-ballo Bergé (kaballo86_at_[hidden])
Date: 2013-08-25 12:14:33


On 25/08/2013 11:15 a.m., Mathias Gaunard wrote:
> On 25/08/13 03:00, Agustín K-ballo Bergé wrote:
>> According to this table http://gcc.gnu.org/projects/cxx0x.html, GCC
>> supports "Solving the SFINAE problem for expressions" since 4.4.
>> According to Boost.Config, it is since 4.5. The following test case
>> works fine with 4.8.1, but fails miserably with 4.6.4:
>> http://ideone.com/RzgXKM
>> Errors include invalid conversion from X const* to X*, and use of
>> non-member-ptr in member-ptr expression. GCC 4.7.3 (tested by zao at
>> #boost) shows similar results: https://www.acc.umu.se/~zao/kbsfinae11.txt
>>
>> Should BOOST_NO_SFINAE_EXPR be adjusted according to the results of this
>> test case?
>
> I believe there were too many bugs with this feature with 4.4 to
> actually use it reliably.

That continues to be the case, albeit in more complex scenarios.

> Restricting to 4.8.1 would certainly be a bit annoying, are the bugs
> that major?

I just tested with those versions I had access to, it might be working
on an earlier version than 4.8.1.

How would I determine the severity of the bugs? The feature is either
broken or incomplete and there are no workarounds, so it sounds major to
me. My use case is somewhat contrived, I give you that, but that doesn't
negate the fact that there is no true SFINAE for expressions support.
Maybe this grants having a BOOST_NO_*FULL*_SFINAE_EXPR config macro,
drawing some arbitrary line on how much conformance is "enough" conformance.

By the way, why is there no CXX11 prefix in that macro name?

Regards,

-- 
Agustín K-ballo Bergé.-
http://talesofcpp.fusionfenix.com

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