title: Implicit casting like shared_ptr<T>
body: <p>When using <code>std::shared_ptr&lt;&gt;</code> it's possible to cast from <code>shared_ptr&lt;T&gt;</code> to <code>shared_ptr&lt;U&gt;</code> if U is a base of T.</p>
  
  <p>I'm trying to achieve the same thing, I have a template class that wraps a pointer and I'd like the same derived-to-base conversion to work, how is this done?</p>