Home | History | Annotate | Download | only in base

Lines Matching defs:TypeList

307 struct TypeList {};
315 struct DropTypeListItemImpl<n, TypeList<T, List...>>
316 : DropTypeListItemImpl<n - 1, TypeList<List...>> {};
319 struct DropTypeListItemImpl<0, TypeList<T, List...>> {
320 using Type = TypeList<T, List...>;
324 struct DropTypeListItemImpl<0, TypeList<>> {
325 using Type = TypeList<>;
328 // A type-level function that drops |n| list item from given TypeList.
338 struct TakeTypeListItemImpl<n, TypeList<T, List...>, Accum...>
339 : TakeTypeListItemImpl<n - 1, TypeList<List...>, Accum..., T> {};
342 struct TakeTypeListItemImpl<0, TypeList<T, List...>, Accum...> {
343 using Type = TypeList<Accum...>;
347 struct TakeTypeListItemImpl<0, TypeList<>, Accum...> {
348 using Type = TypeList<Accum...>;
351 // A type-level function that takes first |n| list item from given TypeList.
352 // E.g. TakeTypeListItem<3, TypeList<A, B, C, D>> is evaluated to
353 // TypeList<A, B, C>.
362 struct ConcatTypeListsImpl<TypeList<Types1...>, TypeList<Types2...>> {
363 using Type = TypeList<Types1..., Types2...>;
375 struct MakeFunctionTypeImpl<R, TypeList<Args...>> {
393 using ArgsList = TypeList<Args...>;
396 // A type-level function that extracts function arguments into a TypeList.
397 // E.g. ExtractArgs<R(A, B, C)> is evaluated to TypeList<A, B, C>.