std::weak_ptr::owner_equal(3)

NAME
std::weak_ptr::owner_equal - std::weak_ptr::owner_equal

Synopsis
   template< class Y > (1) (since C++26)
   bool owner_equal( const std::weak_ptr<Y>& other ) const noexcept;
   template< class Y >
   bool owner_equal( const std::shared_ptr<Y>& other ) const (2) (since C++26)
   noexcept;
   Checks whether this weak_ptr and other share ownership or are both empty. The
   comparison is such that two smart pointers compare equivalent only if they are both
   empty or if they both own the same object, even if the values of the pointers
   obtained by get() are different (e.g. because they point at different subobjects
   within the same object).
   The member function owner_equal is an equivalence relation such that
   !owner_before(other) && !other.owner_before(*this) is true if and only if
   owner_equal(other) is true.
   This ordering is used to make shared and weak pointers usable as keys in unordered
   associative containers, typically through std::owner_equal.

Parameters
   other - the std::shared_ptr or std::weak_ptr to be compared

Return value
   true if *this and other share ownership or are both empty. Otherwise, returns false.

Notes
           Feature-test macro Value Std Feature
                        Enabling the use of std::weak_ptr
   __cpp_lib_smart_ptr_owner_equality 202306L (C++26) as keys in unordered associative
                        containers

Example
    This section is incomplete
    Reason: example

See also
   owner_equal provides mixed-type owner-based equal comparisons of shared and weak
   (C++26) pointers
               (class)

Category:
     * Todo with reason