feat(memory): add CMultipleAllocator for non-contiguous containers

This commit is contained in:
2023-03-22 19:35:42 +08:00
parent 3d951a80db
commit ff155e23de
4 changed files with 23 additions and 12 deletions

View File

@ -17,7 +17,7 @@ NAMESPACE_MODULE_BEGIN(Redcraft)
NAMESPACE_MODULE_BEGIN(Utility)
/** Dynamic array. The elements are stored contiguously, which means that elements can be accessed not only through iterators, but also using offsets to regular pointers to elements. */
template <CElementalObject T, CInstantiableAllocator Allocator = FHeapAllocator> requires (!CConst<T>)
template <CElementalObject T, CAllocator<T> Allocator = FHeapAllocator> requires (!CConst<T>)
class TArray final
{
private:

View File

@ -17,7 +17,7 @@ NAMESPACE_MODULE_BEGIN(Utility)
template <CElementalObject T, size_t N>
struct TStaticArray;
template <CElementalObject T, CInstantiableAllocator A> requires (!CConst<T>)
template <CElementalObject T, CAllocator<T> A> requires (!CConst<T>)
class TArray;
inline constexpr size_t DynamicExtent = INDEX_NONE;

View File

@ -24,7 +24,7 @@ using TDefaultBitsetAllocator = TInlineAllocator<(40 - 3 * sizeof(size_t)) / siz
NAMESPACE_PRIVATE_END
template <CUnsignedIntegral InBlockType, CInstantiableAllocator Allocator = NAMESPACE_PRIVATE::TDefaultBitsetAllocator<InBlockType>> requires (!CSameAs<InBlockType, bool>)
template <CUnsignedIntegral InBlockType, CAllocator<InBlockType> Allocator = NAMESPACE_PRIVATE::TDefaultBitsetAllocator<InBlockType>> requires (!CSameAs<InBlockType, bool>)
class TBitset final
{
private: