|
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