14 #ifndef WPIUTIL_WPI_ALIGNOF_H 15 #define WPIUTIL_WPI_ALIGNOF_H 17 #include "wpi/Compiler.h" 35 template<std::
size_t Alignment, std::
size_t Size>
37 LLVM_ALIGNAS(Alignment)
char buffer[Size];
43 template<std::
size_t Alignment, std::
size_t Size>
54 template<std::
size_t Size>
62 template<std::
size_t Size>
70 template<std::
size_t Size>
78 template<std::
size_t Size>
90 #define LLVM_ALIGNEDCHARARRAY_TEMPLATE_ALIGNMENT(x) \ 91 template<std::size_t Size> \ 92 struct AlignedCharArray<x, Size> { \ 93 __declspec(align(x)) char buffer[Size]; \ 96 LLVM_ALIGNEDCHARARRAY_TEMPLATE_ALIGNMENT(16)
97 LLVM_ALIGNEDCHARARRAY_TEMPLATE_ALIGNMENT(32)
98 LLVM_ALIGNEDCHARARRAY_TEMPLATE_ALIGNMENT(64)
99 LLVM_ALIGNEDCHARARRAY_TEMPLATE_ALIGNMENT(128)
101 #undef LLVM_ALIGNEDCHARARRAY_TEMPLATE_ALIGNMENT 106 template <
typename T1,
107 typename T2 = char,
typename T3 = char,
typename T4 = char,
108 typename T5 = char,
typename T6 = char,
typename T7 = char,
109 typename T8 = char,
typename T9 = char,
typename T10 =
char>
111 T1 t1; T2 t2; T3 t3; T4 t4; T5 t5; T6 t6; T7 t7; T8 t8; T9 t9; T10 t10;
116 template <
typename T1,
117 typename T2 = char,
typename T3 = char,
typename T4 = char,
118 typename T5 = char,
typename T6 = char,
typename T7 = char,
119 typename T8 = char,
typename T9 = char,
typename T10 =
char>
121 char arr1[
sizeof(T1)], arr2[
sizeof(T2)], arr3[
sizeof(T3)], arr4[
sizeof(T4)],
122 arr5[
sizeof(T5)], arr6[
sizeof(T6)], arr7[
sizeof(T7)], arr8[
sizeof(T8)],
123 arr9[
sizeof(T9)], arr10[
sizeof(T10)];
134 template <
typename T1,
135 typename T2 = char,
typename T3 = char,
typename T4 = char,
136 typename T5 = char,
typename T6 = char,
typename T7 = char,
137 typename T8 = char,
typename T9 = char,
typename T10 =
char>
139 alignof(wpi::detail::AlignerImpl<T1, T2, T3, T4, T5,
140 T6, T7, T8, T9, T10>),
141 sizeof(::wpi::detail::SizerImpl<T1, T2, T3, T4, T5,
142 T6, T7, T8, T9, T10>)> {
146 #endif // LLVM_SUPPORT_ALIGNOF_H namespace to hold default to_json function
Definition: json_binary_writer.cpp:39
Definition: AlignOf.h:120
Helper for building an aligned character array type.
Definition: AlignOf.h:36
This union template exposes a suitably aligned and sized character array member which can hold elemen...
Definition: AlignOf.h:138
Definition: AlignOf.h:110