#pragma once #include "SparseArray.h" template class TSetElement { public: ElementType Value; mutable int32 HashNextId; mutable int32 HashIndex; TSetElement(ElementType InValue, int32 InHashNextId, int32 InHashIndex) : Value(InValue) , HashNextId(InHashNextId) , HashIndex(InHashIndex) { } FORCEINLINE TSetElement& operator=(const TSetElement& Other) { Value = Other.Value; } FORCEINLINE bool operator==(const TSetElement& Other) const { return Value == Other.Value; } FORCEINLINE bool operator!=(const TSetElement& Other) const { return Value != Other.Value; } }; template //, typename KeyFuncs, typename Allocator> class TSet { public: typedef TSetElement ElementType; typedef TSparseArrayElementOrListLink ArrayElementType; TSparseArray Elements; mutable TInlineAllocator<1>::ForElementType Hash; mutable int32 HashSize; };