1#ifndef TATOOINE_TYPE_COUNTER_H
2#define TATOOINE_TYPE_COUNTER_H
15template <
typename Counter,
typename T>
18template <
typename Counter,
typename T>
22template <
typename HeadCounter,
typename... Counters,
typename T>
24 static auto constexpr value =
28template <
typename HeadCounter,
typename... Counters,
typename T>
30 static auto constexpr value =
34template <std::size_t N,
typename... Counters,
typename T>
37 static auto constexpr value = N;
43 static auto constexpr value = 0;
46template <std::size_t N,
typename... Counters,
typename T>
49 static auto constexpr value = N;
55 static auto constexpr value = 0;
58template <
typename Counter,
typename T>
61template <
typename T, std::
size_t N,
typename OtherT>
66template <
typename T, std::
size_t N>
71template <
typename Counter,
typename T>
75template <
typename Counter,
typename... Ts>
78template <
typename... Counters,
typename Head,
typename... Rest>
85template <
typename... Counters>
89template <
typename... Counters,
typename Head,
typename... Rest>
96template <
typename... Counters>
101template <
typename Counter,
typename... Ts>
105template <
typename StaticTypeSet,
typename... Ts>
108template <
typename... UniqueTypes,
typename... Ts>
114template <
typename... UniqueTypes,
typename... Ts>
120template <
typename... Ts>
typename type_counter_insert_impl< Counter, Ts... >::type type_counter_insert
Definition: type_counter.h:103
static auto constexpr type_counter_get_count
Definition: type_counter.h:19
typename count_types_impl< type_list< Ts... >, Ts... >::type count_types
Definition: type_counter.h:121
typename type_counter_increase_if_equal_impl< Counter, T >::type type_counter_increase_if_equal
Definition: type_counter.h:73
typename type_set_constructor< type_list<>, Ts... >::type type_set
Definition: type_set.h:132
Definition: algorithm.h:6
T type
Definition: common_type.h:13
type_counter_insert< type_list_impl< type_number_pair< UniqueTypes, 0 >... >, Ts... > type
Definition: type_counter.h:112
type_counter_insert< type_set_impl< type_number_pair< UniqueTypes, 0 >... >, Ts... > type
Definition: type_counter.h:118
Definition: type_counter.h:106
Definition: type_counter.h:16
Definition: type_counter.h:59
typename type_counter_insert_impl< type_list_impl< type_counter_increase_if_equal< Counters, Head >... >, Rest... >::type type
Definition: type_counter.h:82
typename type_counter_insert_impl< type_set_impl< type_counter_increase_if_equal< Counters, Head >... >, Rest... >::type type
Definition: type_counter.h:93
type_set< Counters... > type
Definition: type_counter.h:98
Definition: type_counter.h:76
An empty struct that holds types.
Definition: type_list.h:248
Definition: type_number_pair.h:9
Inherits from a type_list with only unique types.
Definition: type_set.h:138