Index: core/fxcrt/cfx_retain_ptr.h |
diff --git a/core/fxcrt/cfx_retain_ptr.h b/core/fxcrt/cfx_retain_ptr.h |
index 1b137d4974fb71317ad05e0e750f5b11d4f53a40..f70faf14645e74fc37d7d07357c8aec67a668ed7 100644 |
--- a/core/fxcrt/cfx_retain_ptr.h |
+++ b/core/fxcrt/cfx_retain_ptr.h |
@@ -5,11 +5,13 @@ |
#ifndef CORE_FXCRT_CFX_RETAIN_PTR_H_ |
#define CORE_FXCRT_CFX_RETAIN_PTR_H_ |
+#include <functional> |
#include <memory> |
#include <utility> |
#include "core/fxcrt/fx_memory.h" |
+// Analogous to base's scoped_refptr. |
template <class T> |
class CFX_RetainPtr { |
public: |
@@ -50,9 +52,12 @@ class CFX_RetainPtr { |
bool operator==(const CFX_RetainPtr& that) const { |
return Get() == that.Get(); |
} |
- |
bool operator!=(const CFX_RetainPtr& that) const { return !(*this == that); } |
+ bool operator<(const CFX_RetainPtr& that) const { |
+ return std::less<T*>()(Get(), that.Get()); |
+ } |
+ |
explicit operator bool() const { return !!m_pObj; } |
T& operator*() const { return *m_pObj.get(); } |
T* operator->() const { return m_pObj.get(); } |