Iros
 
Loading...
Searching...
No Matches
algorithm.h File Reference

Go to the source code of this file.

Classes

struct  di::meta::detail::AllHelper< Pred, Type >
 
struct  di::meta::detail::AllHelper< Pred, List< Types... > >
 
struct  di::meta::detail::AsLanguageFunction< R, List< Types... > >
 
struct  di::meta::detail::AsListHelper< T >
 
struct  di::meta::detail::AsListHelper< ListV< values... > >
 
struct  di::meta::detail::AsListHelper< Template< Types... > >
 
struct  di::meta::detail::AsListHelper< R(Args...)>
 
struct  di::meta::detail::AsTemplateHelper< Template, List >
 
struct  di::meta::detail::AsTemplateHelper< Template, List< Types... > >
 
struct  di::meta::detail::ConcatHelper<... >
 
struct  di::meta::detail::ConcatHelper< List< Ts... >, List< Us... >, Rest... >
 
struct  di::meta::detail::ConcatHelper< T >
 
struct  di::meta::detail::ConcatHelper<>
 
struct  di::meta::detail::PopFrontHelper< T >
 
struct  di::meta::detail::PopFrontHelper< List< T, Rest... > >
 
struct  di::meta::detail::PopBackHelper< T >
 
struct  di::meta::detail::PopBackHelper< List< T, U, Rest... > >
 
struct  di::meta::detail::FoldHelper< List, Acc, MetaFn >
 
struct  di::meta::detail::FoldHelper< List<>, Acc, MetaFn >
 
struct  di::meta::detail::FoldHelper< List< T, Rest... >, Acc, MetaFn >
 
struct  di::meta::detail::FoldRightHelper< List, Init, MetaFn >
 
struct  di::meta::detail::FoldRightHelper< List<>, Init, MetaFn >
 
struct  di::meta::detail::FoldRightHelper< List< T, Rest... >, Init, MetaFn >
 
struct  di::meta::detail::FilterReducer< Pred >
 
struct  di::meta::detail::ReplaceReducer< Needle, Replacement >
 
struct  di::meta::detail::ReplaceIfReducer< Pred, Replacement >
 
struct  di::meta::detail::TransformHelper<... >
 
struct  di::meta::detail::TransformHelper< List< Types... >, Fun >
 
struct  di::meta::detail::PushBackIfUnique
 
struct  di::meta::detail::PushBackIfUnique::Impl< Lst, T >
 
struct  di::meta::detail::PushBackIfUnique::Impl< Lst, T >
 
struct  di::meta::detail::ZipHelper< T, U >
 
struct  di::meta::detail::ZipHelper< List< T, Ts... >, List< U, Us... > >
 
struct  di::meta::detail::RepeatHelper< T, 0 >
 
struct  di::meta::detail::RepeatHelper< T, 1 >
 
struct  di::meta::detail::RepeatHelper< T, N >
 
struct  di::meta::detail::CartesianProductHelper< Types >
 
struct  di::meta::detail::CartesianProductHelper<>
 
struct  di::meta::detail::CartesianProductHelper< List< Types... > >
 
struct  di::meta::detail::CartesianProductHelper< List< Ts... >, Rest... >
 
struct  di::meta::detail::MakeIntegerSequenceConcatHelper< T, ListV< s1... >, ListV< s2... > >
 
struct  di::meta::detail::MakeIntegerSequenceHelper< T, count >
 
struct  di::meta::detail::MakeIntegerSequenceHelper< T, 1 >
 
struct  di::meta::detail::MakeIntegerSequenceHelper< T, 0 >
 

Namespaces

namespace  di
 
namespace  di::meta
 
namespace  di::meta::detail
 

Typedefs

template<typename R, concepts::TypeList T>
using di::meta::AsLanguageFunction = Type<detail::AsLanguageFunction<R, T>>
 
template<typename T>
using di::meta::AsList = Type<detail::AsListHelper<T>>
 
template<template< typename... > typename Template, concepts::TypeList T>
using di::meta::AsTemplate = Type<detail::AsTemplateHelper<Template, T>>
 
template<concepts::TypeList T>
using di::meta::AsTuple = AsTemplate<vocab::Tuple, T>
 
template<concepts::TypeList... Lists>
using di::meta::Concat = Type<detail::ConcatHelper<Lists...>>
 
template<concepts::TypeList L, typename T>
using di::meta::PushFront = Concat<List<T>, L>
 
template<concepts::TypeList L, typename T>
using di::meta::PushBack = Concat<L, List<T>>
 
template<concepts::TypeList List>
using di::meta::Join = Apply<Quote<Concat>, List>
 
template<concepts::TypeList L>
using di::meta::PopFront = Type<detail::PopFrontHelper<L>>
 
template<concepts::TypeList L>
using di::meta::PopBack = Type<detail::PopBackHelper<L>>
 
template<concepts::TypeList List, typename Init, concepts::MetaInvocable MetaFn>
using di::meta::Fold = Type<detail::FoldHelper<List, Init, MetaFn>>
 
template<concepts::TypeList List, typename Init, concepts::MetaInvocable MetaFn>
using di::meta::FoldRight = Type<detail::FoldRightHelper<List, Init, MetaFn>>
 
template<concepts::TypeList List, concepts::MetaInvocable Pred>
using di::meta::Filter = Fold<List, meta::List<>, detail::FilterReducer<Pred>>
 
template<concepts::TypeList List, typename Needle, typename Replacement>
using di::meta::Replace = Fold<List, meta::List<>, detail::ReplaceReducer<Needle, Replacement>>
 
template<concepts::TypeList List, concepts::MetaInvocable Pred, typename Replacement>
using di::meta::ReplaceIf = Fold<List, meta::List<>, detail::ReplaceIfReducer<Pred, Replacement>>
 
template<concepts::TypeList List, typename Function>
using di::meta::Transform = detail::TransformHelper<List, Function>::Type
 
template<concepts::TypeList Lst>
using di::meta::Unique = Fold<Lst, List<>, detail::PushBackIfUnique>
 
template<concepts::TypeList T, concepts::TypeList U>
using di::meta::Zip = Type<detail::ZipHelper<T, U>>
 
template<typename T, usize N>
using di::meta::Repeat = Type<detail::RepeatHelper<T, N>>
 
template<concepts::TypeList... Types>
using di::meta::CartesianProduct = Type<detail::CartesianProductHelper<Types...>>
 
template<typename T, usize count>
using di::meta::MakeIntegerSequence = Type<detail::MakeIntegerSequenceHelper<T, count>>
 
template<usize count>
using di::meta::MakeIndexSequence = MakeIntegerSequence<usize, count>
 
template<typename... Types>
using di::meta::IndexSequenceFor = MakeIndexSequence<sizeof...(Types)>
 

Variables

template<concepts::TypeList List, concepts::MetaInvocable Pred>
constexpr bool di::meta::All = detail::AllHelper<Pred, List>::value