From 0a75197fa6f2a98295d5035f7a99e7fd9ecd6e90 Mon Sep 17 00:00:00 2001 From: jules Date: Mon, 2 Jul 2018 10:25:14 +0100 Subject: [PATCH] Tweaked ReferenceCountedObjectPtr to try to cause fewer ambiguities when comparing it with raw pointers --- .../memory/juce_ReferenceCountedObject.h | 37 +++++-------------- 1 file changed, 9 insertions(+), 28 deletions(-) diff --git a/modules/juce_core/memory/juce_ReferenceCountedObject.h b/modules/juce_core/memory/juce_ReferenceCountedObject.h index 0fc3c940a3..8d8e726766 100644 --- a/modules/juce_core/memory/juce_ReferenceCountedObject.h +++ b/modules/juce_core/memory/juce_ReferenceCountedObject.h @@ -362,6 +362,15 @@ public: /** Checks whether this pointer is null */ bool operator!= (decltype (nullptr)) const noexcept { return referencedObject != nullptr; } + /** Compares two ReferenceCountedObjectPtrs. */ + bool operator== (const ObjectType* other) const noexcept { return referencedObject == other; } + /** Compares two ReferenceCountedObjectPtrs. */ + bool operator== (const ReferenceCountedObjectPtr& other) const noexcept { return referencedObject == other.get(); } + /** Compares two ReferenceCountedObjectPtrs. */ + bool operator!= (const ObjectType* other) const noexcept { return referencedObject != other; } + /** Compares two ReferenceCountedObjectPtrs. */ + bool operator!= (const ReferenceCountedObjectPtr& other) const noexcept { return referencedObject != other.get(); } + #if JUCE_STRICT_REFCOUNTEDPOINTER /** Checks whether this pointer is null */ operator bool() const noexcept { return referencedObject != nullptr; } @@ -399,20 +408,6 @@ private: //============================================================================== -/** Compares two ReferenceCountedObjectPtrs. */ -template -bool operator== (const ReferenceCountedObjectPtr& object1, const Type* object2) noexcept -{ - return object1.get() == object2; -} - -/** Compares two ReferenceCountedObjectPtrs. */ -template -bool operator== (const ReferenceCountedObjectPtr& object1, const ReferenceCountedObjectPtr& object2) noexcept -{ - return object1.get() == object2.get(); -} - /** Compares two ReferenceCountedObjectPtrs. */ template bool operator== (const Type* object1, const ReferenceCountedObjectPtr& object2) noexcept @@ -420,20 +415,6 @@ bool operator== (const Type* object1, const ReferenceCountedObjectPtr& obj return object1 == object2.get(); } -/** Compares two ReferenceCountedObjectPtrs. */ -template -bool operator!= (const ReferenceCountedObjectPtr& object1, const Type* object2) noexcept -{ - return object1.get() != object2; -} - -/** Compares two ReferenceCountedObjectPtrs. */ -template -bool operator!= (const ReferenceCountedObjectPtr& object1, const ReferenceCountedObjectPtr& object2) noexcept -{ - return object1.get() != object2.get(); -} - /** Compares two ReferenceCountedObjectPtrs. */ template bool operator!= (const Type* object1, const ReferenceCountedObjectPtr& object2) noexcept