[*] 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"
template <class T, typename Z, typename LessThan_t = AuHash::less<T>>
using AuBST = AURORA_RUNTIME_AU_BST<T, Z, LessThan_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, Allocator_t>;
template<typename T>
struct AuIsBST : AuFalseType
{ };
template<typename T, typename Z>
struct AuIsBST<AuBST<T, Z>> : AuTrueType
template<typename T, typename Z, typename A, typename B>
struct AuIsBST<AuBST<T, Z, A, B>> : AuTrueType
{ };
template <class T>

View File

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

View File

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