idfxx 1.0.0
Modern C++23 components for ESP-IDF
Loading...
Searching...
No Matches
idfxx::dram_allocator< T > Struct Template Reference

STL-compatible allocator for internal DRAM. More...

Public Types

using value_type = T
 The type of object to allocate.
 

Public Member Functions

 dram_allocator ()=default
 Default constructor.
 
template<typename U >
constexpr dram_allocator (const dram_allocator< U > &) noexcept
 Rebinding copy constructor.
 
T * allocate (size_t n)
 Allocates memory for n objects of type T from internal DRAM.
 
void deallocate (T *p, size_t) noexcept
 Deallocates memory previously allocated by this allocator.
 

Detailed Description

template<typename T>
struct idfxx::dram_allocator< T >

STL-compatible allocator for internal DRAM.

This allocator uses the ESP-IDF heap_caps API to allocate memory from internal DRAM with 8-bit access capability. It can be used with standard containers to ensure allocations come from internal memory rather than external PSRAM.

Template Parameters
TThe type of object to allocate.

Definition at line 59 of file memory.hpp.

Member Typedef Documentation

◆ value_type

template<typename T >
using idfxx::dram_allocator< T >::value_type = T

The type of object to allocate.

Definition at line 60 of file memory.hpp.

Constructor & Destructor Documentation

◆ dram_allocator() [1/2]

template<typename T >
idfxx::dram_allocator< T >::dram_allocator ( )
default

Default constructor.

◆ dram_allocator() [2/2]

template<typename T >
template<typename U >
constexpr idfxx::dram_allocator< T >::dram_allocator ( const dram_allocator< U > &  )
inlineconstexprnoexcept

Rebinding copy constructor.

Template Parameters
UThe source allocator's value type.

Definition at line 71 of file memory.hpp.

Member Function Documentation

◆ allocate()

template<typename T >
T * idfxx::dram_allocator< T >::allocate ( size_t  n)
inline

Allocates memory for n objects of type T from internal DRAM.

Parameters
nThe number of objects to allocate space for.
Returns
A pointer to the allocated memory.
Note
Throws std::bad_alloc only when CONFIG_COMPILER_CXX_EXCEPTIONS is enabled in menuconfig. When exceptions are disabled, calls esp_system_abort() on failure.
Exceptions
std::bad_allocIf allocation fails and exceptions are enabled.

Definition at line 84 of file memory.hpp.

◆ deallocate()

template<typename T >
void idfxx::dram_allocator< T >::deallocate ( T *  p,
size_t   
)
inlinenoexcept

Deallocates memory previously allocated by this allocator.

Parameters
pPointer to the memory to deallocate.

Definition at line 101 of file memory.hpp.


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