23 General utilities library [utilities]
long use_count() const noexcept;
Returns: 0 if
*this is empty;
otherwise, the number of
shared_ptr instances
that share ownership with
*this. bool expired() const noexcept;
Returns: use_count() == 0. shared_ptr<T> lock() const noexcept;
Returns: expired() ? shared_ptr<T>() : shared_ptr<T>(*this), executed atomically
. template<class U> bool owner_before(const shared_ptr<U>& b) const;
template<class U> bool owner_before(const weak_ptr<U>& b) const;
Returns: An unspecified value such that
x.owner_before(y) defines a strict weak ordering as defined in
[alg.sorting];
under the equivalence relation defined by
owner_before,
!a.owner_before(b) && !b.owner_before(a), two
shared_ptr or
weak_ptr instances are equivalent if and only if they share ownership or are
both empty
.