Loading...
Searching...
No Matches
memory

## Classes

struct | etl::pointer_traits< T >
struct | etl::pointer_traits< T * >
struct | etl::default_delete< T >
struct | etl::default_delete< T[]>
class | etl::unique_ptr< T, TDeleter >
class | etl::unique_ptr< T[], TDeleter >
struct | etl::create_copy< T >
struct | etl::wipe_on_destruct< T >

## Functions

template<typename T>
ETL_NODISCARD ETL_CONSTEXPR17 T * | etl::launder (T *p) ETL_NOEXCEPT
template<typename T>
ETL_NODISCARD T * | etl::start_lifetime_as (void *p) ETL_NOEXCEPT
template<typename T>
ETL_NODISCARD T * | etl::start_lifetime_as_array (void *p, size_t n) ETL_NOEXCEPT
void * | etl::align (size_t alignment, size_t size, void *&ptr, size_t &space) ETL_NOEXCEPT
template<size_t N, typename T>
ETL_NODISCARD ETL_CONSTEXPR T * | etl::assume_aligned (T *ptr) ETL_NOEXCEPT
template<size_t Alignment, typename T>
ETL_NODISCARD bool | etl::is_sufficiently_aligned (T *ptr) ETL_NOEXCEPT
template<typename TOutputIterator, typename T>
TOutputIterator | etl::uninitialized_fill (TOutputIterator o_begin, TOutputIterator o_end, const T &value)
template<typename TOutputIterator, typename T, typename TCounter>
TOutputIterator | etl::uninitialized_fill (TOutputIterator o_begin, TOutputIterator o_end, const T &value, TCounter &count)
template<typename TOutputIterator, typename TSize, typename T>
TOutputIterator | etl::uninitialized_fill_n (TOutputIterator o_begin, TSize n, const T &value)
template<typename TOutputIterator, typename TSize, typename T, typename TCounter>
TOutputIterator | etl::uninitialized_fill_n (TOutputIterator o_begin, TSize n, const T &value, TCounter &count)
template<typename TInputIterator, typename TOutputIterator>
TOutputIterator | etl::uninitialized_copy (TInputIterator i_begin, TInputIterator i_end, TOutputIterator o_begin)
template<typename TInputIterator, typename TOutputIterator, typename TCounter>
TOutputIterator | etl::uninitialized_copy (TInputIterator i_begin, TInputIterator i_end, TOutputIterator o_begin, TCounter &count)
template<typename TInputIterator, typename TSize, typename TOutputIterator>
TOutputIterator | etl::uninitialized_copy_n (TInputIterator i_begin, TSize n, TOutputIterator o_begin)
template<typename TInputIterator, typename TSize, typename TOutputIterator, typename TCounter>
TOutputIterator | etl::uninitialized_copy_n (TInputIterator i_begin, TSize n, TOutputIterator o_begin, TCounter &count)
template<typename TInputIterator, typename TOutputIterator>
TOutputIterator | etl::uninitialized_move (TInputIterator i_begin, TInputIterator i_end, TOutputIterator o_begin)
template<typename TInputIterator, typename TOutputIterator, typename TCounter>
TOutputIterator | etl::uninitialized_move (TInputIterator i_begin, TInputIterator i_end, TOutputIterator o_begin, TCounter &count)
template<typename TInputIterator, typename TSize, typename TOutputIterator>
TOutputIterator | etl::uninitialized_move_n (TInputIterator i_begin, TSize n, TOutputIterator o_begin)
template<typename TInputIterator, typename TSize, typename TOutputIterator, typename TCounter>
TOutputIterator | etl::uninitialized_move_n (TInputIterator i_begin, TSize n, TOutputIterator o_begin, TCounter &count)
template<typename TOutputIterator>
etl::enable_if< etl::is_trivially_constructible< typenameetl::iterator_traits< TOutputIterator >::value_type >::value, void >::type | etl::uninitialized_default_construct (TOutputIterator, TOutputIterator)
template<typename TOutputIterator, typename TCounter>
etl::enable_if< etl::is_trivially_constructible< typenameetl::iterator_traits< TOutputIterator >::value_type >::value, void >::type | etl::uninitialized_default_construct (TOutputIterator o_begin, TOutputIterator o_end, TCounter &count)
template<typename TOutputIterator, typename TSize>
etl::enable_if< etl::is_trivially_constructible< typenameetl::iterator_traits< TOutputIterator >::value_type >::value, TOutputIterator >::type | etl::uninitialized_default_construct_n (TOutputIterator o_begin, TSize n)
template<typename TOutputIterator, typename TSize, typename TCounter>
etl::enable_if< etl::is_trivially_constructible< typenameetl::iterator_traits< TOutputIterator >::value_type >::value, TOutputIterator >::type | etl::uninitialized_default_construct_n (TOutputIterator o_begin, TSize n, TCounter &count)
template<typename TOutputIterator>
etl::enable_if< etl::is_trivially_constructible< typenameetl::iterator_traits< TOutputIterator >::value_type >::value, void >::type | etl::uninitialized_value_construct (TOutputIterator o_begin, TOutputIterator o_end)
template<typename TOutputIterator, typename TCounter>
void | etl::uninitialized_value_construct (TOutputIterator o_begin, TOutputIterator o_end, TCounter &count)
template<typename TOutputIterator, typename TSize>
TOutputIterator | etl::uninitialized_value_construct_n (TOutputIterator o_begin, TSize n)
template<typename TOutputIterator, typename TSize, typename TCounter>
TOutputIterator | etl::uninitialized_value_construct_n (TOutputIterator o_begin, TSize n, TCounter &count)
template<typename T>
T * | etl::construct_at (T *p)
template<typename T, typename TArg>
T * | etl::construct_at (T *p, const TArg &arg)
template<typename T>
etl::enable_if< etl::is_trivially_destructible< T >::value, void >::type | etl::destroy_at (T *)
template<typename T, typename TCounter>
etl::enable_if< etl::is_trivially_destructible< T >::value, void >::type | etl::destroy_at (T *, TCounter &count)
template<typename TIterator>
etl::enable_if< etl::is_trivially_destructible< typenameetl::iterator_traits< TIterator >::value_type >::value, void >::type | etl::destroy (TIterator, TIterator)
template<typename TIterator, typename TCounter>
etl::enable_if< etl::is_trivially_destructible< typenameetl::iterator_traits< TIterator >::value_type >::value, void >::type | etl::destroy (TIterator i_begin, TIterator i_end, TCounter &count)
template<typename TIterator, typename TSize>
etl::enable_if< etl::is_trivially_destructible< typenameetl::iterator_traits< TIterator >::value_type >::value, TIterator >::type | etl::destroy_n (TIterator i_begin, TSize n)
template<typename TIterator, typename TSize, typename TCounter>
etl::enable_if< etl::is_trivially_destructible< typenameetl::iterator_traits< TIterator >::value_type >::value, TIterator >::type | etl::destroy_n (TIterator i_begin, TSize n, TCounter &count)
template<typename T>
etl::enable_if< etl::is_trivially_constructible< T >::value, void >::type | etl::create_default_at (T *)
template<typename T, typename TCounter>
etl::enable_if< etl::is_trivially_constructible< T >::value, void >::type | etl::create_default_at (T *, TCounter &count)
template<typename T>
void | etl::create_value_at (T *p)
template<typename T, typename TCounter>
void | etl::create_value_at (T *p, TCounter &count)
template<typename T>
void | etl::create_copy_at (T *p, const T &value)
template<typename T, typename TCounter>
void | etl::create_copy_at (T *p, const T &value, TCounter &count)
template<typename T>
T & | etl::make_default_at (T *p)
template<typename T, typename TCounter>
T & | etl::make_default_at (T *p, TCounter &count)
template<typename T>
T & | etl::make_copy_at (T *p, const T &other)
template<typename T, typename TCounter>
T & | etl::make_copy_at (T *p, const T &other, TCounter &count)
template<typename T, typename TParameter>
T & | etl::make_value_at (T *p, const TParameter &value)
template<typename T, typename TParameter, typename TCounter>
T & | etl::make_value_at (T *p, const TParameter &value, TCounter &count)
void | etl::memory_clear (volatile char *p, size_t n)
template<typename T>
void | etl::memory_clear (volatile T &object)
template<typename T>
void | etl::memory_clear_range (volatile T *begin, size_t n)
template<typename T>
void | etl::memory_clear_range (volatile T *begin, volatile T *end)
void | etl::memory_set (volatile char *p, size_t n, char value)
template<typename T>
void | etl::memory_set (volatile T &object, const char value)
template<typename T>
void | etl::memory_set_range (volatile T *begin, size_t n, const char value)
template<typename T>
void | etl::memory_set_range (volatile T *begin, volatile T *end, const char value)
template<typename T>
ETL_CONSTEXPR17 etl::enable_if<!etl::is_same< T, etl::nullptr_t >::value, T >::type * | etl::addressof (T &t)

## Detailed Description

## Class Documentation

## etl::pointer_traits

struct etl::pointer_traits

template<typename T>
struct etl::pointer_traits< T >

Provides information about pointer-like types. General case where the type itself models the pointer (fancy / smart pointers). https://en.cppreference.com/w/cpp/memory/pointer_traits

### Public Types

typedef T | pointer
typedef T::element_type | element_type
typedef ptrdiff_t | difference_type

### Static Public Member Functions

static ETL_NODISCARD ETL_CONSTEXPR pointer | pointer_to (element_type &r) ETL_NOEXCEPT

## etl::pointer_traits< T * >

struct etl::pointer_traits< T * >

template<typename T>
struct etl::pointer_traits< T * >

Provides information about pointer-like types. Raw pointer specialisation. https://en.cppreference.com/w/cpp/memory/pointer_traits

### Public Types

typedef T * | pointer
typedef T | element_type
typedef ptrdiff_t | difference_type

### Static Public Member Functions

static ETL_NODISCARD ETL_CONSTEXPR pointer | pointer_to (element_type &r) ETL_NOEXCEPT

## etl::default_delete

struct etl::default_delete

template<typename T>
struct etl::default_delete< T >

Default deleter.

Template Parameters

  T | The pointed to type type. https://en.cppreference.com/w/cpp/memory/default_delete

### Public Member Functions

template<typename U>
ETL_CONSTEXPR | default_delete (const default_delete< U > &) ETL_NOEXCEPT
void | operator() (T *p) const ETL_NOEXCEPT

## etl::default_delete< T[]>

struct etl::default_delete< T[]>

template<typename T>
struct etl::default_delete< T[]>

Default deleter for arrays.

Template Parameters

  T | The pointed to type type. https://en.cppreference.com/w/cpp/memory/default_delete

### Public Member Functions

template<typename U>
ETL_CONSTEXPR | default_delete (const default_delete< U > &) ETL_NOEXCEPT
template<class U>
void | operator() (U *p) const

## etl::unique_ptr

class etl::unique_ptr

template<typename T, typename TDeleter = etl::default_delete<T>>
class etl::unique_ptr< T, TDeleter >

Unique pointer.

Template Parameters

  T | The pointed to type type. https://en.cppreference.com/w/cpp/memory/unique_ptr

### Public Types

typedef T | element_type
typedef T * | pointer
typedef T & | reference

### Public Member Functions

ETL_CONSTEXPR | unique_ptr (pointer p_) ETL_NOEXCEPT
| unique_ptr (unique_ptr &other) ETL_NOEXCEPT
| unique_ptr (pointer p_, typename etl::conditional< etl::is_reference< TDeleter >::value, TDeleter, typename etl::add_lvalue_reference< const TDeleter >::type >::type deleter_) ETL_NOEXCEPT
ETL_CONSTEXPR pointer | get () const ETL_NOEXCEPT
TDeleter & | get_deleter () ETL_NOEXCEPT
const TDeleter & | get_deleter () const ETL_NOEXCEPT
pointer | release () ETL_NOEXCEPT
void | reset (pointer p_=pointer()) ETL_NOEXCEPT
void | swap (unique_ptr &value) ETL_NOEXCEPT
ETL_CONSTEXPR | operator bool () const ETL_NOEXCEPT
unique_ptr & | operator= (etl::nullptr_t) ETL_NOEXCEPT
unique_ptr & | operator= (unique_ptr &other) ETL_NOEXCEPT
ETL_CONSTEXPR reference | operator* () const
ETL_CONSTEXPR pointer | operator-> () const ETL_NOEXCEPT
ETL_CONSTEXPR reference | operator[] (size_t i) const

## etl::unique_ptr< T[], TDeleter >

class etl::unique_ptr< T[], TDeleter >

template<typename T, typename TDeleter>
class etl::unique_ptr< T[], TDeleter >

Unique pointer for arrays.

Template Parameters

  T | The pointed to type type. https://en.cppreference.com/w/cpp/memory/unique_ptr

### Public Types

typedef T | element_type
typedef T * | pointer
typedef T & | reference

### Public Member Functions

ETL_CONSTEXPR | unique_ptr (pointer p_) ETL_NOEXCEPT
| unique_ptr (unique_ptr &other) ETL_NOEXCEPT
| unique_ptr (pointer p_, typename etl::conditional< etl::is_reference< TDeleter >::value, TDeleter, typename etl::add_lvalue_reference< const TDeleter >::type >::type deleter_) ETL_NOEXCEPT
ETL_CONSTEXPR pointer | get () const ETL_NOEXCEPT
TDeleter & | get_deleter () ETL_NOEXCEPT
const TDeleter & | get_deleter () const ETL_NOEXCEPT
pointer | release () ETL_NOEXCEPT
void | reset (pointer p_) ETL_NOEXCEPT
void | reset (etl::nullptr_t=ETL_NULLPTR) ETL_NOEXCEPT
void | swap (unique_ptr &v) ETL_NOEXCEPT
ETL_CONSTEXPR | operator bool () const ETL_NOEXCEPT
unique_ptr & | operator= (etl::nullptr_t) ETL_NOEXCEPT
unique_ptr & | operator= (unique_ptr &other) ETL_NOEXCEPT
ETL_CONSTEXPR reference | operator* () const
ETL_CONSTEXPR pointer | operator-> () const ETL_NOEXCEPT
ETL_CONSTEXPR reference | operator[] (size_t i) const

## etl::create_copy

struct etl::create_copy

template<typename T>
struct etl::create_copy< T >

Copy constructs a derived class to an address.

Template Parameters

  T | The derived type.

### Public Member Functions

void | create_copy_at (void *p)
template<typename TCounter>
void | create_copy_at (void *p, TCounter &count)
T & | make_copy_at (void *p)
template<typename TCounter>
T & | make_copy_at (void *p, TCounter &count)

## etl::wipe_on_destruct

struct etl::wipe_on_destruct

template<typename T>
struct etl::wipe_on_destruct< T >

Base class for objects that require their memory to be wiped after use. Erases the object's memory to zero. Note: This may not work for multiply inherited objects.

Template Parameters

  T | The derived type.

## Function Documentation

## addressof()

template<typename T>

ETL_CONSTEXPR17 etl::enable_if<!etl::is_same< T, etl::nullptr_t >::value, T >::type * etl::addressof | ( | T & | t | ) |

Gets the address of an object. https://en.cppreference.com/w/cpp/memory/addressof

## align()

void * etl::align | ( | size_t | alignment,
|  | size_t | size,
|  | void *& | ptr,
|  | size_t & | space )

inline

Aligns a pointer within a buffer. Advances 'ptr' to the next address with the given 'alignment' that can hold 'size' bytes within 'space' bytes, shrinking 'space' by the consumed padding. Returns the aligned pointer, or ETL_NULLPTR when the buffer is too small. 'alignment' must be a power of 2; the behaviour is undefined if it is not. https://en.cppreference.com/w/cpp/memory/align

## assume_aligned()

template<size_t N, typename T>

ETL_NODISCARD ETL_CONSTEXPR T * etl::assume_aligned | ( | T * | ptr | ) |

Informs the compiler that the pointer 'ptr' is aligned to at least N bytes and returns it. N must be a power of 2. Behaviour is undefined if 'ptr' is not actually aligned to N. https://en.cppreference.com/w/cpp/memory/assume_aligned

## construct_at() [1/2]

template<typename T>

T * etl::construct_at | ( | T * | p | ) |

Constructs an item at address p. https://en.cppreference.com/w/cpp/memory/construct_at

## construct_at() [2/2]

template<typename T, typename TArg>

T * etl::construct_at | ( | T * | p,
|  | const TArg & | arg )

Constructs an item at address p with value 'arg'. https://en.cppreference.com/w/cpp/memory/construct_at

## create_copy_at() [1/2]

template<typename T>

void etl::create_copy_at | ( | T * | p,
|  | const T & | value )

Copy construct an item at address p.

## create_copy_at() [2/2]

template<typename T, typename TCounter>

void etl::create_copy_at | ( | T * | p,
|  | const T & | value,
|  | TCounter & | count )

Copy construct an item at address p.

## create_default_at() [1/2]

template<typename T>

etl::enable_if< etl::is_trivially_constructible< T >::value, void >::type etl::create_default_at | ( | T * |  | ) |

Default construct an item at address p.

## create_default_at() [2/2]

template<typename T, typename TCounter>

etl::enable_if< etl::is_trivially_constructible< T >::value, void >::type etl::create_default_at | ( | T * | ,
|  | TCounter & | count )

Default construct an item at address p.

## create_value_at() [1/2]

template<typename T>

void etl::create_value_at | ( | T * | p | ) |

Value construct an item at address p.

## create_value_at() [2/2]

template<typename T, typename TCounter>

void etl::create_value_at | ( | T * | p,
|  | TCounter & | count )

Value construct an item at address p.

## destroy() [1/2]

template<typename TIterator, typename TCounter>

etl::enable_if< etl::is_trivially_destructible< typenameetl::iterator_traits< TIterator >::value_type >::value, void >::type etl::destroy | ( | TIterator | i_begin,
|  | TIterator | i_end,
|  | TCounter & | count )

Destroys a range of items. Debug counter version. https://en.cppreference.com/w/cpp/memory/destroy

## destroy() [2/2]

template<typename TIterator>

etl::enable_if< etl::is_trivially_destructible< typenameetl::iterator_traits< TIterator >::value_type >::value, void >::type etl::destroy | ( | TIterator | ,
|  | TIterator | )

Destroys a range of items. https://en.cppreference.com/w/cpp/memory/destroy

## destroy_at() [1/2]

template<typename T>

etl::enable_if< etl::is_trivially_destructible< T >::value, void >::type etl::destroy_at | ( | T * |  | ) |

Destroys an item at address p. https://en.cppreference.com/w/cpp/memory/destroy_at

## destroy_at() [2/2]

template<typename T, typename TCounter>

etl::enable_if< etl::is_trivially_destructible< T >::value, void >::type etl::destroy_at | ( | T * | ,
|  | TCounter & | count )

Destroys an item at address p. Debug counter version. https://en.cppreference.com/w/cpp/memory/destroy_at

## destroy_n() [1/2]

template<typename TIterator, typename TSize>

etl::enable_if< etl::is_trivially_destructible< typenameetl::iterator_traits< TIterator >::value_type >::value, TIterator >::type etl::destroy_n | ( | TIterator | i_begin,
|  | TSize | n )

Destroys a number of items. https://en.cppreference.com/w/cpp/memory/destroy_n

## destroy_n() [2/2]

template<typename TIterator, typename TSize, typename TCounter>

etl::enable_if< etl::is_trivially_destructible< typenameetl::iterator_traits< TIterator >::value_type >::value, TIterator >::type etl::destroy_n | ( | TIterator | i_begin,
|  | TSize | n,
|  | TCounter & | count )

Destroys a number of items. Debug counter version. https://en.cppreference.com/w/cpp/memory/destroy_n

## is_sufficiently_aligned()

template<size_t Alignment, typename T>

ETL_NODISCARD bool etl::is_sufficiently_aligned | ( | T * | ptr | ) |

Checks whether 'ptr' is aligned to at least Alignment bytes. Alignment must be a power of 2. https://en.cppreference.com/w/cpp/memory/is_sufficiently_aligned

## launder()

template<typename T>

ETL_NODISCARD ETL_CONSTEXPR17 T * etl::launder | ( | T * | p | ) |

Obtains a pointer to the object created in the storage pointed to by p. Prevents the compiler from making invalid assumptions when the lifetime of an object has ended and a new object has been created in the same storage. T must not be a function type nor a (possibly cv-qualified) void type. https://en.cppreference.com/w/cpp/utility/launder

## make_copy_at() [1/2]

template<typename T>

T & etl::make_copy_at | ( | T * | p,
|  | const T & | other )

Construct an item at address p.

## make_copy_at() [2/2]

template<typename T, typename TCounter>

T & etl::make_copy_at | ( | T * | p,
|  | const T & | other,
|  | TCounter & | count )

Construct an item at address p.

## make_default_at() [1/2]

template<typename T>

T & etl::make_default_at | ( | T * | p | ) |

Construct an item at address p.

## make_default_at() [2/2]

template<typename T, typename TCounter>

T & etl::make_default_at | ( | T * | p,
|  | TCounter & | count )

Construct an item at address p.

## make_value_at() [1/2]

template<typename T, typename TParameter>

T & etl::make_value_at | ( | T * | p,
|  | const TParameter & | value )

Construct an item at address p.

## make_value_at() [2/2]

template<typename T, typename TParameter, typename TCounter>

T & etl::make_value_at | ( | T * | p,
|  | const TParameter & | value,
|  | TCounter & | count )

Construct an item at address p.

## memory_clear() [1/2]

void etl::memory_clear | ( | volatile char * | p,
|  | size_t | n )

inline

A low level function that clears an object's memory to zero.

Parameters

  p | Pointer to the memory.
  n | Size of the memory.

## memory_clear() [2/2]

template<typename T>

void etl::memory_clear | ( | volatile T & | object | ) |

A low level function that clears an object's memory to zero.

Template Parameters

  T | The type.

Parameters

  object | The object to clear.

## memory_clear_range() [1/2]

template<typename T>

void etl::memory_clear_range | ( | volatile T * | begin,
|  | size_t | n )

A low level function that clears a range to zero.

Template Parameters

  T | The type.

Parameters

  begin | The first object in the range.
  n | The number of objects.

## memory_clear_range() [2/2]

template<typename T>

void etl::memory_clear_range | ( | volatile T * | begin,
|  | volatile T * | end )

A low level function that clears a range to zero.

Template Parameters

  T | The type.

Parameters

  begin | The first object in the range.
  end | One past the last object in the range.

## memory_set() [1/2]

void etl::memory_set | ( | volatile char * | p,
|  | size_t | n,
|  | char | value )

inline

A low level function that clears an object's memory to zero.

Parameters

  p | Pointer to the memory.
  n | Size of the memory.
  value | The value to set.

## memory_set() [2/2]

template<typename T>

void etl::memory_set | ( | volatile T & | object,
|  | const char | value )

A low level function that sets an object's memory to a value.

Template Parameters

  T | The type.

Parameters

  object | The object to set.
  value | The value to set the object's memory to.

## memory_set_range() [1/2]

template<typename T>

void etl::memory_set_range | ( | volatile T * | begin,
|  | size_t | n,
|  | const char | value )

A low level function that clears a range to zero.

Template Parameters

  T | The type.

Parameters

  begin | The first object in the range.
  n | The number of objects.
  value | The value to set the object's memory to.

## memory_set_range() [2/2]

template<typename T>

void etl::memory_set_range | ( | volatile T * | begin,
|  | volatile T * | end,
|  | const char | value )

A low level function that clears a range to zero.

Template Parameters

  T | The type.

Parameters

  begin | The first object in the range.
  end | One past the last object in the range.
  value | The value to set the object's memory to.

## start_lifetime_as()

template<typename T>

ETL_NODISCARD T * etl::start_lifetime_as | ( | void * | p | ) |

Implicitly creates an object of type T in the storage pointed to by p and starts its lifetime. T must be a trivially copyable (implicit-lifetime) type. The storage must be suitably sized and aligned for T. https://en.cppreference.com/w/cpp/memory/start_lifetime_as

## start_lifetime_as_array()

template<typename T>

ETL_NODISCARD T * etl::start_lifetime_as_array | ( | void * | p,
|  | size_t | n )

Implicitly creates an array of n objects of type T in the storage pointed to by p and starts their lifetimes. T must be a trivially copyable (implicit-lifetime) type. Returns a pointer to the first element, or a pointer comparing equal to p when n is zero. https://en.cppreference.com/w/cpp/memory/start_lifetime_as

## uninitialized_copy() [1/2]

template<typename TInputIterator, typename TOutputIterator>

TOutputIterator etl::uninitialized_copy | ( | TInputIterator | i_begin,
|  | TInputIterator | i_end,
|  | TOutputIterator | o_begin )

Copies a range of objects to uninitialised memory. https://en.cppreference.com/w/cpp/memory/uninitialized_copy

## uninitialized_copy() [2/2]

template<typename TInputIterator, typename TOutputIterator, typename TCounter>

TOutputIterator etl::uninitialized_copy | ( | TInputIterator | i_begin,
|  | TInputIterator | i_end,
|  | TOutputIterator | o_begin,
|  | TCounter & | count )

Copies a range of objects to uninitialised memory. Debug counter version. https://en.cppreference.com/w/cpp/memory/uninitialized_copy

## uninitialized_copy_n() [1/2]

template<typename TInputIterator, typename TSize, typename TOutputIterator>

TOutputIterator etl::uninitialized_copy_n | ( | TInputIterator | i_begin,
|  | TSize | n,
|  | TOutputIterator | o_begin )

Copies N objects to uninitialised memory. https://en.cppreference.com/w/cpp/memory/uninitialized_copy_n

## uninitialized_copy_n() [2/2]

template<typename TInputIterator, typename TSize, typename TOutputIterator, typename TCounter>

TOutputIterator etl::uninitialized_copy_n | ( | TInputIterator | i_begin,
|  | TSize | n,
|  | TOutputIterator | o_begin,
|  | TCounter & | count )

Copies N objects to uninitialised memory. Debug counter version. https://en.cppreference.com/w/cpp/memory/uninitialized_copy_n

## uninitialized_default_construct() [1/2]

template<typename TOutputIterator, typename TCounter>

etl::enable_if< etl::is_trivially_constructible< typenameetl::iterator_traits< TOutputIterator >::value_type >::value, void >::type etl::uninitialized_default_construct | ( | TOutputIterator | o_begin,
|  | TOutputIterator | o_end,
|  | TCounter & | count )

Default initialises a range of objects to uninitialised memory. https://en.cppreference.com/w/cpp/memory/uninitialized_default_construct Debug counter version.

## uninitialized_default_construct() [2/2]

template<typename TOutputIterator>

etl::enable_if< etl::is_trivially_constructible< typenameetl::iterator_traits< TOutputIterator >::value_type >::value, void >::type etl::uninitialized_default_construct | ( | TOutputIterator | ,
|  | TOutputIterator | )

Default initialises a range of objects to uninitialised memory. https://en.cppreference.com/w/cpp/memory/uninitialized_default_construct

## uninitialized_default_construct_n() [1/2]

template<typename TOutputIterator, typename TSize>

etl::enable_if< etl::is_trivially_constructible< typenameetl::iterator_traits< TOutputIterator >::value_type >::value, TOutputIterator >::type etl::uninitialized_default_construct_n | ( | TOutputIterator | o_begin,
|  | TSize | n )

Default initialises N objects to uninitialised memory. https://en.cppreference.com/w/cpp/memory/uninitialized_default_construct_n

## uninitialized_default_construct_n() [2/2]

template<typename TOutputIterator, typename TSize, typename TCounter>

etl::enable_if< etl::is_trivially_constructible< typenameetl::iterator_traits< TOutputIterator >::value_type >::value, TOutputIterator >::type etl::uninitialized_default_construct_n | ( | TOutputIterator | o_begin,
|  | TSize | n,
|  | TCounter & | count )

Default initialises N objects to uninitialised memory. https://en.cppreference.com/w/cpp/memory/uninitialized_default_construct_n Debug counter version.

## uninitialized_fill() [1/2]

template<typename TOutputIterator, typename T>

TOutputIterator etl::uninitialized_fill | ( | TOutputIterator | o_begin,
|  | TOutputIterator | o_end,
|  | const T & | value )

Fills uninitialised memory range with a value. Debug counter version. https://en.cppreference.com/w/cpp/memory/uninitialized_fill

## uninitialized_fill() [2/2]

template<typename TOutputIterator, typename T, typename TCounter>

TOutputIterator etl::uninitialized_fill | ( | TOutputIterator | o_begin,
|  | TOutputIterator | o_end,
|  | const T & | value,
|  | TCounter & | count )

Fills uninitialised memory range with a value. Debug counter version. https://en.cppreference.com/w/cpp/memory/uninitialized_fill

## uninitialized_fill_n() [1/2]

template<typename TOutputIterator, typename TSize, typename T>

TOutputIterator etl::uninitialized_fill_n | ( | TOutputIterator | o_begin,
|  | TSize | n,
|  | const T & | value )

Fills uninitialised memory with N values. https://en.cppreference.com/w/cpp/memory/uninitialized_fill_n

## uninitialized_fill_n() [2/2]

template<typename TOutputIterator, typename TSize, typename T, typename TCounter>

TOutputIterator etl::uninitialized_fill_n | ( | TOutputIterator | o_begin,
|  | TSize | n,
|  | const T & | value,
|  | TCounter & | count )

Fills uninitialised memory with N values. Debug counter version. https://en.cppreference.com/w/cpp/memory/uninitialized_fill_n

## uninitialized_move() [1/2]

template<typename TInputIterator, typename TOutputIterator>

TOutputIterator etl::uninitialized_move | ( | TInputIterator | i_begin,
|  | TInputIterator | i_end,
|  | TOutputIterator | o_begin )

Moves a range of objects to uninitialised memory. https://en.cppreference.com/w/cpp/memory/uninitialized_move

## uninitialized_move() [2/2]

template<typename TInputIterator, typename TOutputIterator, typename TCounter>

TOutputIterator etl::uninitialized_move | ( | TInputIterator | i_begin,
|  | TInputIterator | i_end,
|  | TOutputIterator | o_begin,
|  | TCounter & | count )

Moves a range of objects to uninitialised memory. Debug counter version. https://en.cppreference.com/w/cpp/memory/uninitialized_move

## uninitialized_move_n() [1/2]

template<typename TInputIterator, typename TSize, typename TOutputIterator>

TOutputIterator etl::uninitialized_move_n | ( | TInputIterator | i_begin,
|  | TSize | n,
|  | TOutputIterator | o_begin )

Moves a range of objects to uninitialised memory. https://en.cppreference.com/w/cpp/memory/uninitialized_move_n

## uninitialized_move_n() [2/2]

template<typename TInputIterator, typename TSize, typename TOutputIterator, typename TCounter>

TOutputIterator etl::uninitialized_move_n | ( | TInputIterator | i_begin,
|  | TSize | n,
|  | TOutputIterator | o_begin,
|  | TCounter & | count )

Moves a range of objects to uninitialised memory. Debug counter version. https://en.cppreference.com/w/cpp/memory/uninitialized_move

## uninitialized_value_construct() [1/2]

template<typename TOutputIterator>

etl::enable_if< etl::is_trivially_constructible< typenameetl::iterator_traits< TOutputIterator >::value_type >::value, void >::type etl::uninitialized_value_construct | ( | TOutputIterator | o_begin,
|  | TOutputIterator | o_end )

Default initialises a range of objects to uninitialised memory. https://en.cppreference.com/w/cpp/memory/uninitialized_value_construct

## uninitialized_value_construct() [2/2]

template<typename TOutputIterator, typename TCounter>

void etl::uninitialized_value_construct | ( | TOutputIterator | o_begin,
|  | TOutputIterator | o_end,
|  | TCounter & | count )

Default initialises a range of objects to uninitialised memory. https://en.cppreference.com/w/cpp/memory/uninitialized_value_construct Debug counter version.

## uninitialized_value_construct_n() [1/2]

template<typename TOutputIterator, typename TSize>

TOutputIterator etl::uninitialized_value_construct_n | ( | TOutputIterator | o_begin,
|  | TSize | n )

Default initialises N objects to uninitialised memory. https://en.cppreference.com/w/cpp/memory/uninitialized_value_construct_n

## uninitialized_value_construct_n() [2/2]

template<typename TOutputIterator, typename TSize, typename TCounter>

TOutputIterator etl::uninitialized_value_construct_n | ( | TOutputIterator | o_begin,
|  | TSize | n,
|  | TCounter & | count )

Default initialises N objects to uninitialised memory. https://en.cppreference.com/w/cpp/memory/uninitialized_value_construct_n Debug counter version.