Files
Project-Reboot-3.0/Project Reboot 3.0/Map.h
2023-03-05 14:01:15 -05:00

53 lines
1.2 KiB
C++

#pragma once
#include "Set.h"
// template <typename KeyType, typename ValueType>
// using TPair = TTuple<KeyType, ValueType>;
template <typename KeyType, typename ValueType>
class TPair
{
public:
KeyType First;
ValueType Second;
FORCEINLINE KeyType& Key()
{
return First;
}
FORCEINLINE const KeyType& Key() const
{
return First;
}
FORCEINLINE ValueType& Value()
{
return Second;
}
FORCEINLINE const ValueType& Value() const
{
return Second;
}
};
template <typename KeyType, typename ValueType> //, typename SetAllocator, typename KeyFuncs>
class TMapBase
{
public:
typedef TPair<KeyType, ValueType> ElementType;
typedef TSet<ElementType/*, KeyFuncs, SetAllocator */> ElementSetType;
ElementSetType Pairs;
};
template <typename KeyType, typename ValueType> //, typename SetAllocator, typename KeyFuncs>
class TSortableMapBase : public TMapBase<KeyType, ValueType> //, SetAllocator, KeyFuncs>
{
};
template<typename KeyType, typename ValueType> //,typename SetAllocator /*= FDefaultSetAllocator*/, typename KeyFuncs /*= TDefaultMapHashableKeyFuncs<KeyType,ValueType,false>*/>
class TMap : public TSortableMapBase<KeyType, ValueType> //, SetAllocator, KeyFuncs>
{
};