12 template<
typename Pred,
typename Type>
15 template<
typename Pred,
typename... Types>
19template<concepts::TypeList List, concepts::MetaInvocable Pred>
23 template<
typename R,
typename List>
26 template<
typename R,
typename... Types>
30template<
typename R, concepts::TypeList T>
37 template<
auto... values>
40 template<
template<
typename...>
typename Template,
typename... Types>
43 template<
typename R,
typename... Args>
51 template<
template<
typename...>
typename Template,
typename List>
54 template<
template<
typename...>
typename Template,
typename... Types>
62template<concepts::TypeList T>
69 template<
typename... Ts,
typename... Us,
typename... Rest>
82template<concepts::TypeList L,
typename T>
85template<concepts::TypeList L,
typename T>
88template<concepts::TypeList List>
95 template<
typename T,
typename... Rest>
99template<concepts::TypeList L>
106 template<
typename T,
typename U,
typename... Rest>
110template<concepts::TypeList L>
114 template<
typename List,
typename Acc,
typename MetaFn>
117 template<
typename Acc,
typename MetaFn>
120 template<
typename T,
typename... Rest,
typename Acc,
typename MetaFn>
122 :
TypeConstant<Type<FoldHelper<List<Rest...>, Invoke<MetaFn, Acc, T>, MetaFn>>> {};
125template<concepts::TypeList List,
typename Init, concepts::MetaInvocable MetaFn>
129 template<
typename List,
typename Init,
typename MetaFn>
132 template<
typename Init,
typename MetaFn>
135 template<
typename T,
typename... Rest,
typename Init,
typename MetaFn>
137 :
TypeConstant<Invoke<MetaFn, Type<FoldRightHelper<List<Rest...>, Init, MetaFn>>, T>> {};
140template<concepts::TypeList List,
typename Init, concepts::MetaInvocable MetaFn>
144 template<
typename Pred>
146 template<
typename Acc,
typename Val>
151template<concepts::TypeList List, concepts::MetaInvocable Pred>
155 template<
typename Needle,
typename Replacement>
157 template<
typename Acc,
typename Val>
162template<concepts::TypeList List,
typename Needle,
typename Replacement>
166 template<
typename Pred,
typename Replacement>
168 template<
typename Acc,
typename Val>
173template<concepts::TypeList List, concepts::MetaInvocable Pred,
typename Replacement>
177 template<
typename...>
180 template<
typename... Types,
typename Fun>
185template<concepts::TypeList List,
typename Function>
190 template<concepts::TypeList Lst,
typename T>
193 template<concepts::TypeList Lst,
typename T>
197 template<concepts::TypeList Lst,
typename T>
202template<concepts::TypeList Lst>
206 template<
typename T,
typename U>
209 template<
typename T,
typename U,
typename... Ts,
typename... Us>
211 :
TypeConstant<Concat<List<List<T, U>>, typename ZipHelper<List<Ts...>, List<Us...>>::Type>> {};
214template<concepts::TypeList T, concepts::TypeList U>
219 template<
typename T, usize N>
228 template<
typename T, usize N>
231 :
TypeConstant<Concat<Type<RepeatHelper<T, N / 2>>, Type<RepeatHelper<T, (N + 1) / 2>>>> {};
234template<
typename T, usize N>
238 template<
typename... Types>
244 template<
typename... Types>
247 template<
typename... Ts,
typename... Rest>
249 :
TypeConstant<Concat<Transform<Type<CartesianProductHelper<Rest...>>, BindBack<Quote<PushFront>, Ts>>...>> {};
259 template<
typename T,
typename X,
typename Y>
262 template<
typename T, T... s1, T... s2>
267 template<
typename T, usize count>
281template<
typename T, usize count>
287template<
typename... Types>
constexpr auto count
Definition count.h:37