Patchwork shared_ptr comparisons

login
register
mail settings
Submitter Jonathan Wakely
Date Nov. 16, 2010, 11:46 p.m.
Message ID <AANLkTima1h8QopLjezX+SQLNmEMVKnsPVvPmqbWQjT59@mail.gmail.com>
Download mbox | patch
Permalink /patch/71479/
State New
Headers show

Comments

Jonathan Wakely - Nov. 16, 2010, 11:46 p.m.
Unless I'm mistaken we should only have operators <, == and != for shared_ptr.

Any objections to this change?

Tested x86_64-linux
Paolo Carlini - Nov. 17, 2010, 12:42 a.m.
On 11/17/2010 12:46 AM, Jonathan Wakely wrote:
> Unless I'm mistaken we should only have operators <, == and != for shared_ptr.
>
> Any objections to this change?
>   
Not from me. To be honest I have no idea where those operators comes
from, and certainly we don't have anything similar for the actual
std::shared_ptr...

Paolo.

Patch

Index: include/bits/shared_ptr_base.h
===================================================================
--- include/bits/shared_ptr_base.h	(revision 166459)
+++ include/bits/shared_ptr_base.h	(working copy)
@@ -1098,25 +1098,6 @@  _GLIBCXX_BEGIN_NAMESPACE(std)
     : public _Sp_less<__shared_ptr<_Tp, _Lp>>
     { };
 
-  // XXX LessThanComparable<_Tp> concept should provide >, >= and <=
-  template<typename _Tp, _Lock_policy _Lp>
-    inline bool
-    operator>(const __shared_ptr<_Tp, _Lp>& __a,
-	      const __shared_ptr<_Tp, _Lp>& __b)
-    { return __a.get() > __b.get(); }
-
-  template<typename _Tp, _Lock_policy _Lp>
-    inline bool
-    operator>=(const __shared_ptr<_Tp, _Lp>& __a,
-	       const __shared_ptr<_Tp, _Lp>& __b)
-    { return __a.get() >= __b.get(); }
-
-  template<typename _Tp, _Lock_policy _Lp>
-    inline bool
-    operator<=(const __shared_ptr<_Tp, _Lp>& __a,
-	       const __shared_ptr<_Tp, _Lp>& __b)
-    { return __a.get() <= __b.get(); }
-
   // 2.2.3.8 shared_ptr specialized algorithms.
   template<typename _Tp, _Lock_policy _Lp>
     inline void