32#error THIS HEADER IS A GENERATOR. DO NOT INCLUDE.
53#ifndef ETL_LARGEST_INCLUDED
54#define ETL_LARGEST_INCLUDED
62#include "static_assert.h"
66#if ETL_USING_CPP11 && !defined(ETL_LARGEST_TYPE_FORCE_CPP03_IMPLEMENTATION)
73 template <
typename T1,
typename... TRest>
79 using largest_other =
typename largest_type<TRest...>::type;
85 using type =
typename etl::conditional<(etl::size_of<T1>::value > etl::size_of<largest_other>::value),
93 size = etl::size_of<type>::value
100 template <
typename T1>
109 size = etl::size_of<type>::value
114 template <
typename... T>
115 using largest_type_t =
typename largest_type<T...>::type;
119 template <
typename... T>
131 template <
typename T1,
typename T2 = void,
typename T3 = void,
typename T4 = void,
132 typename T5 = void,
typename T6 = void,
typename T7 = void,
typename T8 = void,
133 typename T9 = void,
typename T10 = void,
typename T11 = void,
typename T12 = void,
134 typename T13 = void,
typename T14 = void,
typename T15 = void,
typename T16 =
void>
138 typedef typename largest_type<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::type largest_other;
157 template <
typename T1>
159 void, void, void, void, void, void, void, void>
170#if ETL_USING_CPP11 && !defined(ETL_LARGEST_ALIGNMENT_FORCE_CPP03_IMPLEMENTATION)
176 template <
typename T1,
typename... TRest>
199 template <
typename T1>
206 value = etl::alignment_of<type>::value
211 template <
typename... T>
222 template <
typename T1,
typename T2 = void,
typename T3 = void,
typename T4 = void,
223 typename T5 = void,
typename T6 = void,
typename T7 = void,
typename T8 = void,
224 typename T9 = void,
typename T10 = void,
typename T11 = void,
typename T12 = void,
225 typename T13 = void,
typename T14 = void,
typename T15 = void,
typename T16 =
void>
229 typedef typename largest_alignment<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::type largest_other;
248 template <
typename T1>
250 void, void, void, void, void, void, void, void>
266 template <
typename T>
269 ETL_STATIC_ASSERT(etl::is_integral<T>::value,
"Must be an integral type");
275 template <
typename T>
276 using larger_int_type_t =
typename larger_int_type<T>::type;
284 template <
typename T>
285 struct larger_uint_type
287 ETL_STATIC_ASSERT(etl::is_integral<T>::value,
"Must be an integral type");
293 template <
typename T>
294 using larger_uint_type_t =
typename larger_uint_type<T>::type;
303 template <typename T, bool IS_SIGNED = etl::is_signed<T>::value>
306 template <
typename T>
309 ETL_STATIC_ASSERT(etl::is_integral<T>::value,
"Must be an integral type");
311 typedef typename etl::smallest_uint_for_bits<etl::integral_limits<T>::bits + 1>::type type;
314 template <
typename T>
317 ETL_STATIC_ASSERT(etl::is_integral<T>::value,
"Must be an integral type");
319 typedef typename etl::smallest_int_for_bits<etl::integral_limits<T>::bits + 1>::type type;
323 template <
typename T>
327#if ETL_USING_CPP11 && !defined(ETL_LARGEST_FORCE_CPP03_IMPLEMENTATION)
333 template <
typename... T>
336 using type =
typename etl::largest_type<T...>::type;
340 size = etl::largest_type<T...>::size,
341 alignment = etl::largest_alignment<T...>::value
346 template <
typename... T>
347 using largest_t =
typename largest<T...>::type;
351 template <
typename... T>
362 template <
typename T1,
typename T2 = void,
typename T3 = void,
typename T4 = void,
363 typename T5 = void,
typename T6 = void,
typename T7 = void,
typename T8 = void,
364 typename T9 = void,
typename T10 = void,
typename T11 = void,
typename T12 = void,
365 typename T13 = void,
typename T14 = void,
typename T15 = void,
typename T16 =
void>
368 typedef typename etl::largest_type<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::type type;
372 size = etl::largest_type<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::size,
373 alignment = etl::largest_alignment<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>::value
Defines a type that is as larger or larger than the specified type. Will return the specified type is...
Definition largest_generator.h:352
Template to determine the smallest signed int type that can contain a value with the specified number...
Definition smallest_generator.h:352
Template to determine the smallest unsigned int type that can contain a value with the specified numb...
Definition smallest_generator.h:323
add_rvalue_reference
Definition type_traits_generator.h:1413
conditional
Definition type_traits_generator.h:1223
bitset_ext
Definition absolute.h:39
ETL_CONSTEXPR TContainer::size_type size(const TContainer &container)
Definition iterator.h:1187
Defines a type that is as larger or larger than the specified type. Will return the specified type is...
Definition largest_generator.h:316