Boost logo

Boost :

From: Daniel Wallin (dalwan01_at_[hidden])
Date: 2004-09-27 04:20:26


Aleksey Gurtovoy wrote:
>>Do you need any help in writing these?
>
>
> I'd be happy if the GCC failures went away by themselves :), but given
> that I'm the only person throughly familiar with the current
> implementation, I'm afraid it's not cost-effective to ask somebody
> else to look at them. Unless, of course, they _want_ to get their
> hands dirty in all the intricacies of the library internals.

I think you can fix these by moving the query functions into the
classes. For instance:

   template< typename T, typename Base >
   aux::no_tag is_masked_(s_item<T,Base> const&, aux::type_wrapper<T>*);

To:

   template< typename T, typename Base >
   struct s_item
       : Base
   {
       ...
       static aux::no_tag is_masked_(aux::type_wrapper<T>*);
       using Base::is_masked_;
   };

Etc, for all of them. And of course, change the queries from

             ( sizeof( BOOST_MPL_AUX_OVERLOAD_IS_MASKED(
                     aux::ptr_to_ref(BOOST_MPL_AUX_STATIC_CAST(Set*, 0))
                   , BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper<T>*, 0)
                   ) ) == sizeof(aux::no_tag) )
>

to

             ( sizeof( Set::is_masked_(
                     BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper<T>*, 0)
                   ) ) == sizeof(aux::no_tag) )
>

Etc. For this compiler. This is how NamedParams does these things, and
it seems to work.

-- 
Daniel Wallin

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