cpp/memory/weak ptr/weak ptr

Constructs new that potentially shares an object with.

@1@ Default constructor. Constructs empty. @2@ Constructs new which shares an object managed by. If manages no object,  manages no object too. The templated overloads don't participate in the overload resolution unless is implicitly convertible to. @3@ Move constructors. Moves a weak_ptr instance from into. After this, is empty and. The templated overload doesn't participate in the overload resolution unless is implicitly convertible to.