John Maddock wrote: >> I was just about to build the filesystem library for the first time >> on my Win98+BCC 5.5.1 environment, but I got lots of errors from >> "type_traits/is_convertible.hpp" >> Since the regression_test shows that this library passed bcc5.6.1 > yesterday, >> I thought that is_convertible might have changed today. Indeed, >> version > 1.10 >> (the previous) works fine. (that is, I was able to build the FS >> library) >> >> I attach here the compiler output using the -Q compiler option (which > shows >> extended error information). > > It's a builder 5.5.1 bug: is_convertible does not work correctly with > that compiler (and never has), when one To parameter has a user > defined constructor. > But the problem is that is_convertible<> is currently being used by, at least, the filesystem library in a way that doesn't work any more with bcc5.5.1; while it did. The recent changes allowed it to keep working with bcc5.6 which is why the regression tests didn't show the problem, but it broke bcc5.5.1.
The following fix, for bcc5.5.1, reverts the is_convertible definition to the way it was on version1.10. #if BOOST_WORKAROUND(_BORLANDC_, < 0x560 ) BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,(::boost::detail::is_con vertible_impl<From,To>::value)) #else template <typename From, typename To> struct is_convertible_forwarder { typedef typename add_reference<From>::type ref_type; BOOST_STATIC_CONSTANT(bool, value = (::boost::type_traits::ice_and< ::boost::detail::is_convertible_impl<ref_type,To>::value, ::boost::type_traits::ice_not< ::boost::is_array<To>::value >::value >::value) ); }; BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,::boost::detail::is_conv ertible_forwarder<From,To>::value)) #endif -- Fernando Cacciola _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost