Boost logo

Boost Users :

From: Jonathan Turkanis (technews_at_[hidden])
Date: 2004-06-29 16:36:22


"Delfin Rojas" <drojas_at_[hidden]> wrote in message
news:200406292056.i5TKuKjj027844_at_patti.moodlogic.com...
> Hi everybody,
>
> I am writing a template class that processes several types. However
my
> problem is that when the type of the template is
boost::shared_ptr<P> (and
> only in that case) I need to do a boost::dynamic_pointer_cast<P>
inside a
> method.
>
> So, I searched boost::type_traits library but could not find
anything to
> detect a shared_ptr type at compile time. I would appreciate any
ideas of
> how this could be implemented.
>

Here's one way:

    template<typename T>
    struct is_shared_ptr : mpl::false_ { };

    template<typename P>
    struct is_shared_ptr< shared_ptr<P> > : mpl::true_ { };

You can get approximately the same effect without partial
specialization, if necessary.

Jonathan


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net