Actually, on SunCC, it doesn't -- see lines 19-24 in "boost/type_trais/detail/bool_trait_def.hpp":
Yes, I don't know how I missed that. The problem still remains the same. ;)
#if defined(__SUNPRO_CC) # define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::bool_< C > type; \ enum { value = type::value }; \ /**/ # define BOOST_TT_AUX_BOOL_C_BASE(C)
This doesn't work. BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE is not recognised in my version of boost (1.31.0). Presumably it's something that was added later, but just replacing it with mpl:: resolves that problem. However, the original errors remain. Commenting out # define BOOST_TT_AUX_BOOL_C_BASE(C) to allow the derivation fixes the problem, though. Thanks, Tom