
The following patch solves the bad array type being picked up in the call_traits tests, leaving one test unsolved. It also confirms the workarounds are still needed for BCB2006. Note the minor case of switching order of T and const. This is due to a bug I only fully appreciated today. depending on order of add_const and add_ref, BCB will deduce 2 *different* types. int const & int & const The latter does not sound like a 'real' type to me, so I suggest always placing const before the type, rather than after, when dealing with template type-parameters - unless we have cases where this makes a real difference for conforming compilers. Rest of the patch should be straightforward. AlisdairM cvs diff -u -wb -- boost\detail\call_traits.hpp (in directory E:\sourceforge\devel\boost\) Index: boost/detail/call_traits.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/detail/call_traits.hpp,v retrieving revision 1.15 diff -u -w -b -r1.15 call_traits.hpp --- boost/detail/call_traits.hpp 12 Aug 2005 19:06:10 -0000 1.15 +++ boost/detail/call_traits.hpp 12 Feb 2006 13:23:16 -0000 @@ -58,7 +58,7 @@ template <typename T, bool b1> struct ct_imp<T, true, b1> { - typedef T const param_type; + typedef const T param_type; }; } @@ -92,7 +92,7 @@ typedef T& param_type; // hh removed const }; -#if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x570 ) ) +#if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x581 ) ) // these are illegal specialisations; cv-qualifies applied to // references have no effect according to [8.3.2p1], // C++ Builder requires them though as it treats cv-qualified @@ -121,6 +121,15 @@ typedef const T& const_reference; typedef T& param_type; // hh removed const }; + +template <typename T> +struct call_traits< T * > +{ + typedef T * value_type; + typedef T * & reference; + typedef T * const & const_reference; + typedef T * const param_type; // hh removed const +}; #endif #if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) template <typename T, std::size_t N> -- AlisdairM