Remarks: When T is an array type or cvvoid,
it is unspecified whether this
member function is declared.
If it is declared, it is unspecified what its
return type is, except that the declaration (although not necessarily the
definition) of the function shall be well-formed.
Remarks: When T is an array type,
it is unspecified whether this member function is declared.
If it is declared, it is unspecified what its return type is,
except that the declaration (although not necessarily the definition)
of the function shall be well-formed.
Remarks: When T is not an array type,
it is unspecified whether this member function is declared.
If it is declared, it is unspecified what its return type is,
except that the declaration (although not necessarily the definition)
of the function shall be well-formed.
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.