* @note: If your array contains raw pointers, they will be automatically dereferenced during heapification.
* Therefore, your predicate will be passed references rather than pointers.
* The auto-dereferencing behavior does not occur with smart pointers.
So if you have a TArray<UCell*> Array, when you do HeapPush, your predicate would take a const UCell&.
Well, if you have a TSet<UCell*> then you wouldn’t need a GetTypeHash(const UCell& Cell), you’d need a GetTypeHash(const UCell* Cell).
But for TSets of pointers, you don’t need to manually declare a hashing function because there’s already one that works for pointers. So just delete the function and you’ll be fine.