Browse Source

Tweaked ReferenceCountedObjectPtr to try to cause fewer ambiguities when comparing it with raw pointers

tags/2021-05-28
jules 7 years ago
parent
commit
0a75197fa6
1 changed files with 9 additions and 28 deletions
  1. +9
    -28
      modules/juce_core/memory/juce_ReferenceCountedObject.h

+ 9
- 28
modules/juce_core/memory/juce_ReferenceCountedObject.h View File

@@ -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 <typename Type>
bool operator== (const ReferenceCountedObjectPtr<Type>& object1, const Type* object2) noexcept
{
return object1.get() == object2;
}
/** Compares two ReferenceCountedObjectPtrs. */
template <typename Type>
bool operator== (const ReferenceCountedObjectPtr<Type>& object1, const ReferenceCountedObjectPtr<Type>& object2) noexcept
{
return object1.get() == object2.get();
}
/** Compares two ReferenceCountedObjectPtrs. */
template <typename Type>
bool operator== (const Type* object1, const ReferenceCountedObjectPtr<Type>& object2) noexcept
@@ -420,20 +415,6 @@ bool operator== (const Type* object1, const ReferenceCountedObjectPtr<Type>& obj
return object1 == object2.get();
}
/** Compares two ReferenceCountedObjectPtrs. */
template <typename Type>
bool operator!= (const ReferenceCountedObjectPtr<Type>& object1, const Type* object2) noexcept
{
return object1.get() != object2;
}
/** Compares two ReferenceCountedObjectPtrs. */
template <typename Type>
bool operator!= (const ReferenceCountedObjectPtr<Type>& object1, const ReferenceCountedObjectPtr<Type>& object2) noexcept
{
return object1.get() != object2.get();
}
/** Compares two ReferenceCountedObjectPtrs. */
template <typename Type>
bool operator!= (const Type* object1, const ReferenceCountedObjectPtr<Type>& object2) noexcept


Loading…
Cancel
Save