1256. weak_ptr comparison functions should be removed

Section: 20.3.2.3 [util.smartptr.weak] Status: C++11 Submitter: Daniel Krügler Opened: 2009-11-04 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [util.smartptr.weak].

View all issues with C++11 status.

Discussion:

Additional to the necessary cleanup of the description of the the weak_ptr component from 20.3.2.3 [util.smartptr.weak] described in 1231 it turns out that the currently deleted comparison functions of weak_ptr are not needed at all: There is no safe-bool conversion from weak_ptr, and it won't silently chose a conversion to shared_ptr.

[ 2009-11-14 Moved to Tentatively Ready after 5 positive votes on c++std-lib. ]

Proposed resolution:

Change 20.3.2.3 [util.smartptr.weak]/1 as indicated:

namespace std {
template<class T> class weak_ptr {
public:
...
  // comparisons
  template<class Y> bool operator<(weak_ptr<Y> const&) const = delete;
  template<class Y> bool operator<=(weak_ptr<Y> const&) const = delete;
  template<class Y> bool operator>(weak_ptr<Y> const&) const = delete;
  template<class Y> bool operator>=(weak_ptr<Y> const&) const = delete;
};
...