
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