29 #ifndef __ETL_ALIGNEMENT__
30 #define __ETL_ALIGNEMENT__
38 #if !defined(COMPILER_IAR)
40 #if defined(COMPILER_MICROSOFT)
41 #define ETL_ALIGNMENT_PRE(n) __declspec(align(n))
42 #define ETL_ALIGNMENT_POST(n)
45 #if defined(COMPILER_GCC)
46 #define ETL_ALIGNMENT_PRE(n)
47 #define ETL_ALIGNMENT_POST(n) __attribute__((aligned(n)))
50 #if defined (COMPILER_KEIL)
51 #define ETL_ALIGNMENT_PRE(n)
52 #define ETL_ALIGNMENT_POST(n) __attribute__((aligned(n)))
58 template <
typename T, const
size_t ALIGNMENT>
65 ETL_ALIGNMENT_PRE(1) T value ETL_ALIGNMENT_POST(1);
72 ETL_ALIGNMENT_PRE(2) T value ETL_ALIGNMENT_POST(2);
79 ETL_ALIGNMENT_PRE(4) T value ETL_ALIGNMENT_POST(4);
86 ETL_ALIGNMENT_PRE(8) T value ETL_ALIGNMENT_POST(8);
93 ETL_ALIGNMENT_PRE(16) T value ETL_ALIGNMENT_POST(16);
97 template <
typename TValue,
typename TAlign>
104 #undef ETL_ALIGNMENT_PRE
105 #undef ETL_ALIGNMENT_POST
Definition: algorithm.h:43
Template declaration.
Definition: alignment.h:59
Align As.
Definition: alignment.h:98