If someone comes across this old post, this is the solution:
template <typename T>
bool StructEquals(const T& First, const T& Second)
{
return T::StaticStruct()->CompareScriptStruct(&First, &Second, 0);
}
CompareScriptStruct
is used by blueprint system itself as a generic way of comparing USTRUCTs
based on their UPROPERTYs
. It is invoked when using an Array.Find
or Array.Contains
blueprint node for example.
Also see my post about a solution for the opposite problem: Using a custom C++ == operator
in these blueprint nodes instead