title: What are the rules for conversions between various smart pointers in C++
body: <p>The TR1 has introduced shared_ptr, weak_ptr, scoped_ptr and unique_ptr et al.</p>
  
  <p>I would like to know the various conversion/type-promotion rules between these types. </p>
  
  <p>For example what occurs when a scoped_ptr is assigned to a shared_ptr? Are such conversion possible/meaningful and what are some use-cases for such conversions?</p>
  
  <p><em>(Is there a table in the specifiction?)</em></p>