shared_ptr comparisons

Jonathan Wakely jwakely.gcc@gmail.com
Sat Nov 27 18:32:00 GMT 2010


On 17 November 2010 00:42, Paolo Carlini wrote:
> 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...

2010-11-27  Jonathan Wakely  <jwakely.gcc@gmail.com>

        * include/bits/shared_ptr_base.h (operator>, operator>=, operator<=):
        Remove comparisons not specified in the C++0x draft.

tested x86_64-linux and committed to trunk
-------------- next part --------------
Index: include/bits/shared_ptr_base.h
===================================================================
--- include/bits/shared_ptr_base.h	(revision 167056)
+++ 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


More information about the Libstdc++ mailing list