Maybe this is a simple question but...
Suppose to have:

template<typename T>
class Base {...};

template<typename T>
class Derived : public Base<T> {...};

and

shared_ptr< Base<T> > BasePtr;
shared_ptr< Derived<T> > DerivedPtr;

How can assign BasePtr to DerivedPtr?
 
 
 
 boost::static_pointer_cast<Derived<T> >(p)