A C++ template library for embedded applications
Designed and maintained by
Aster Consulting Ltd

Alignment

A way of aligning memory storage through template parameters.

type_with_alignment

template <const size_t ALIGNMENT>
class type_with_alignment

Returns a fundamental type that has the same alignment as that specified in the template parameter.

typedef etl::type_with_alignment<4>::type type_t;

aligned_storage

template <const size_t LENGTH, const size_t ALIGNMENT>
struct aligned_storage;

Creates a memory store of the specified length at the specified alignment.

// Creates aligned storage of length 100 at an alignment of 8.
etl::aligned_storage<100, 8>::type storage;

The class defines various conversion operators for ease of use.

Conversions are supplied to T&, const T&, T*, const T*, plus explicit get_address and get_reference member functions.

aligned_storage_as

template <const size_t LENGTH, typename T>
struct aligned_storage_as;

Creates a memory store of the specified length at the same alignment as the specified type.

// Creates aligned storage of length 100 at an alignment of a double.
etl::aligned_storage_as<100, double>::type storage;
alignment.h