FastLED 3.9.15
Loading...
Searching...
No Matches
fl::allocator_inlined< T, N, BaseAllocator > Class Template Reference

Detailed Description

template<typename T, fl::size N, typename BaseAllocator = fl::allocator<T>>
class fl::allocator_inlined< T, N, BaseAllocator >

Definition at line 521 of file allocator.h.

#include <allocator.h>

+ Inheritance diagram for fl::allocator_inlined< T, N, BaseAllocator >:
+ Collaboration diagram for fl::allocator_inlined< T, N, BaseAllocator >:

Classes

struct  InlinedStorage
 
struct  rebind
 

Public Types

using const_pointer = const T*
 
using const_reference = const T&
 
using difference_type = ptrdiff_t
 
using pointer = T*
 
using reference = T&
 
using size_type = fl::size
 
using value_type = T
 

Public Member Functions

 allocator_inlined () noexcept=default
 
 allocator_inlined (const allocator_inlined &other) noexcept
 
template<typename U>
 allocator_inlined (const allocator_inlined< U, N, typename BaseAllocator::template rebind< U >::other > &other) noexcept
 
 ~allocator_inlined () noexcept
 
T * allocate (fl::size n)
 
void clear ()
 
template<typename U, typename... Args>
void construct (U *p, Args &&... args)
 
void deallocate (T *p, fl::size n)
 
template<typename U>
void destroy (U *p)
 
fl::size inlined_capacity () const
 
bool is_using_inlined () const
 
allocator_inlinedoperator= (const allocator_inlined &other) noexcept
 
fl::size total_size () const
 

Private Types

using has_cleanup = decltype(has_cleanup_impl<BaseAllocator>(0))
 

Private Member Functions

void cleanup_base_allocator ()
 
void cleanup_base_allocator_impl (fl::false_type)
 
void cleanup_base_allocator_impl (fl::true_type)
 
T * get_inlined_ptr ()
 
const T * get_inlined_ptr () const
 
bool operator!= (const allocator_inlined &other) const noexcept
 
bool operator== (const allocator_inlined &other) const noexcept
 

Static Private Member Functions

template<typename U>
static fl::false_type has_cleanup_impl (...)
 
template<typename U>
static auto has_cleanup_impl (int) -> decltype(fl::declval< U >().cleanup(), fl::true_type{})
 

Private Attributes

fl::size m_active_allocations = 0
 
BaseAllocator m_base_allocator
 
fl::bitset_fixed< N > m_free_bits
 
InlinedStorage m_inlined_storage
 
fl::size m_inlined_used = 0
 

The documentation for this class was generated from the following file: