30#ifndef __CLAW_TYPE_LIST_HPP__
31#define __CLAW_TYPE_LIST_HPP__
58 template <
typename Head,
typename Queue>
77 template <
typename Delimiter,
typename TypeList>
82 template <
typename Delimiter>
101 template <
typename Delimiter,
typename TypeList>
106 same_type<Delimiter, typename TypeList::head_type>::result,
109 <
typename TypeList::head_type,
116 same_type<Delimiter, typename TypeList::head_type>::result,
128 template <
typename T1>
139 template <
typename T1,
typename T2>
150 template <
typename T1,
typename T2,
typename T3>
161 template <
typename T1,
typename T2,
typename T3,
typename T4>
173 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
185 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
199 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
200 typename T6,
typename T7>
213 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
214 typename T6,
typename T7,
typename T8>
227 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
228 typename T6,
typename T7,
typename T8,
typename T9>
241 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
242 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
255 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
256 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
271 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
272 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
273 typename T11,
typename T12>
287 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
288 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
289 typename T11,
typename T12,
typename T13>
294 T1,
typename type_list_maker_12<T2, T3, T4, T5, T6, T7, T8, T9, T10,
303 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
304 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
305 typename T11,
typename T12,
typename T13,
typename T14>
310 T1,
typename type_list_maker_13<T2, T3, T4, T5, T6, T7, T8, T9, T10,
319 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
320 typename T6,
typename T7,
typename T8,
typename T9,
typename T10,
321 typename T11,
typename T12,
typename T13,
typename T14,
327 T1,
typename type_list_maker_14<T2, T3, T4, T5, T6, T7, T8, T9, T10,
348 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
364 template <
typename T,
typename List>
371 typename List::queue_type > ::result
375 template <
typename T>
391 template <
typename List>
397 typename List::queue_type
398 > ::result&& type_list_is_a_set<typename List::queue_type>::result
416 template <
typename List>
421 result = 1 + type_list_length<typename List::queue_type>::result
441 template <
typename T,
typename List>
444 template <
typename T,
typename Tail>
453 template <
typename T>
462 template <
typename T,
typename Head,
typename Tail>
474 signed char,
unsigned char,
signed short,
unsigned short,
signed int,
475 unsigned int,
signed long,
unsigned long,
476#ifndef __STRICT_ANSI__
477 signed long long,
unsigned long long,
Structures for meta-programming.
This is the main namespace.
An empty class not considered as a effective type.
Check if two types are the same.