For example, can it be used in Qt for the following?
gsl::owner<QWidget*> w{new QWidget{parent}}

In this example, the ownership is shared by the new-site and the parent, because the code who has new-ed the object can delete w, and W's destructor will take itself out of parent children list. However, if w is not deleted at the new-site, then parent will delete it in its destructor. It is not enforced by the type system that there are no new-site users left, so I'm not sure about the ownership kind here.

  1. Is this an example of shared ownership, and
  2. can gsl::owner be used for it?