Boost logo

Boost :

From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2003-01-17 16:30:54


Ronald Garcia wrote:
> Howdy. I am trying to use KCC in strict mode to compile some
> code that depends on type traits.

Which version? Does it support partial template specialization/template
template parameters?

> I am getting a large quantity of errors along these lines:
>
> "/u/garcia/src/boost/boost/type_traits/is_volatile.hpp", line
> 33: error:
> identifier "is_volatile_rebind" is undefined
>
> BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::cv
> _traits_imp<T*>::is_volatile)
> ^
>
> "/u/garcia/src/boost/boost/type_traits/remove_const.hpp",
> line 56: error:
> identifier "remove_const_rebind" is undefined
> BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename
> detail::remove_const_impl<T>::type)
> ^
[...]
>
> Any idea what might be causing this?

Yep. The marked line below makes the 'remove_const' definition ill-formed,
and that's what the BOOST_TT_AUX_TYPE_TRAIT_DEF1 macro expands to on
non-conforming compilers:

    template< typename T > struct remove_const
    {
        typedef T type;

        friend class remove_const_rebind;
        typedef remove_const_rebind rebind; // here
    };

Your KCC is the first compiler that is classified by the config system as
non-conforming (not supporting PTS/TTP), but yet complaining about the above
line :). There are several ways how I can fix the above, but before
attempting the fix I need to know answers to the foregoing questions.

Aleksey


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