[*] Improve AuList, AuHashMap, and AuBST template

This commit is contained in:
Reece Wilson 2024-04-20 00:09:22 +01:00
parent 2a0dc1f064
commit b3e0a6df31
3 changed files with 12 additions and 18 deletions

View File

@ -13,16 +13,15 @@
#include "auHashUtils.hpp" #include "auHashUtils.hpp"
template <class T, typename Z, typename LessThan_t = AuHash::less<T>> template <class T, typename Z, typename LessThan_t = AuHash::less<T>, class Allocator_t = Aurora::Memory::ClassArrayAllocator<AuPair<const T, Z>>>
using AuBST = AURORA_RUNTIME_AU_BST<T, Z, LessThan_t>; using AuBST = AURORA_RUNTIME_AU_BST<T, Z, LessThan_t, Allocator_t>;
template<typename T> template<typename T>
struct AuIsBST : AuFalseType struct AuIsBST : AuFalseType
{ }; { };
template<typename T, typename Z> template<typename T, typename Z, typename A, typename B>
struct AuIsBST<AuBST<T, Z>> : AuTrueType struct AuIsBST<AuBST<T, Z, A, B>> : AuTrueType
{ }; { };
template <class T> template <class T>

View File

@ -13,15 +13,15 @@
#include "auHashUtils.hpp" #include "auHashUtils.hpp"
template <class T, class Z, class Hash_t = AuHash::hash<T>, class Equal_t = AuHash::equal<T>> template <class T, class Z, class Hash_t = AuHash::hash<T>, class Equal_t = AuHash::equal<T>, class Allocator_t = Aurora::Memory::ClassArrayAllocator<AuPair<const T, Z>>>
using AuHashMap = AURORA_RUNTIME_AU_HASH_MAP<T, Z, Hash_t, Equal_t>; using AuHashMap = AURORA_RUNTIME_AU_HASH_MAP<T, Z, Hash_t, Equal_t, Allocator_t>;
template<typename T> template<typename T>
struct AuIsHashMap : AuFalseType struct AuIsHashMap : AuFalseType
{ }; { };
template<typename T, typename Z> template<typename T, typename Z, typename H, typename E, typename A>
struct AuIsHashMap<AuHashMap<T, Z>> : AuTrueType struct AuIsHashMap<AuHashMap<T, Z, H, E, A>> : AuTrueType
{ }; { };
template <class T> template <class T>

View File

@ -15,17 +15,12 @@
#if defined(AURORA_ROXTL_CONTAINERS_USE_PURE) #if defined(AURORA_ROXTL_CONTAINERS_USE_PURE)
template <class T> template <class T, class Allocator_t = AuConditional_t<AuIsClass_v<T>, Aurora::Memory::ClassArrayAllocator<T>, Aurora::Memory::PrimitiveArrayAllocator<T>>>
using AuList = AURORA_RUNTIME_AU_LIST<T>; using AuList = AURORA_RUNTIME_AU_LIST<T, Allocator_t>;
#else #else
template <class T> template <class T, class Allocator_t = AuConditional_t<AuIsClass_v<T>, Aurora::Memory::ClassArrayAllocator<T>, Aurora::Memory::PrimitiveArrayAllocator<T>>>
using AuList = AURORA_RUNTIME_AU_LIST<T, using AuList = AURORA_RUNTIME_AU_LIST<T, Allocator_t>;
AuConditional_t<AuIsClass_v<T>,
Aurora::Memory::ClassArrayAllocator<T>,
Aurora::Memory::PrimitiveArrayAllocator<T>
>
>;
#endif #endif