Boost logo

Boost :

From: David B. Held (dheld_at_[hidden])
Date: 2002-11-29 18:18:54

"Aleksey Gurtovoy" <agurtovoy_at_[hidden]> wrote in message
> [...]
> > > template <class Policy>
> > > struct get_category
> > > : mpl::if_<
> > > mpl::is_placeholder<Policy>
> > > , mpl::identity<Policy>
> > > , get_category_impl<Policy>
> > > >::type
> > > {
> > > BOOST_MPL_AUX_LAMBDA_SUPPORT(1,get_category,(Policy))
> > > };
> [...]

When is it better to derive from something vs. composing it in a typedef?

Also, we're really close on the smart pointer code. I've checked in the
latest version to the sandbox, applying your changes. However, I still get
14 errors that are all in mpl/identity.hpp. I also got the latest CVS
Here's the errors:

identity.hpp(44) : error C2065: 'void_' : undeclared identifier
identity.hpp(44) : error C2990: 'identity' : non-template class has already
    been defined as a template class
identity.hpp(44) : error C2913: explicit specialization;
    'struct boost::boost::mpl::lambda boost::boost::mpl::lambda' is not a
    class template

etc., ad nauseum. All the errors are on these two lines:

BOOST_MPL_AUX_VOID_SPEC(1, make_identity)

Now, I notice that I'm supposed to define these for the policies under
bcc. And when I didn't guard them with a macro, VC complained about
them mightily. But when I tried to guard them in identity.hpp, I got about
104 errors, and decided that was Not The Right Thing To Do(R). So
can these safely be used for any compiler? The definition will
change to the right thing?


Boost list run by bdawes at, gregod at, cpdaniel at, john at