Audacity 3.2.0
|
Metaprogramming utilities for manipulating lists of types. More...
#include <cstddef>
#include <tuple>
#include <type_traits>
#include <utility>
Go to the source code of this file.
Namespaces | |
namespace | TypeList |
Utilities for compile-time type manipulation. Some terminology as in Lisp. | |
Typedefs | |
using | TypeList::Nil = List<> |
template<typename TypeList > | |
using | TypeList::Length_t = typename Length< TypeList >::type |
template<typename TypeList > | |
using | TypeList::Head_t = typename Head< TypeList >::type |
template<typename TypeList > | |
using | TypeList::Tail_t = typename Tail< TypeList >::type |
template<typename TypeList > | |
using | TypeList::Rest = Tail< TypeList > |
Synonym for Tail. More... | |
template<typename TypeList > | |
using | TypeList::Rest_t = Tail_t< TypeList > |
template<size_t N, typename TypeList > | |
using | TypeList::Nth_t = typename Nth< N, TypeList >::type |
template<typename TypeList > | |
using | TypeList::First = Nth< 0, TypeList > |
template<typename TypeList > | |
using | TypeList::First_t = typename First< TypeList >::type |
template<typename TypeList > | |
using | TypeList::Second = Nth< 1, TypeList > |
template<typename TypeList > | |
using | TypeList::Second_t = typename Second< TypeList >::type |
template<typename Type , typename TypeList > | |
using | TypeList::Cons_t = typename Cons< Type, TypeList >::type |
template<typename TypeList , typename Type > | |
using | TypeList::PushFront_t = typename PushFront< TypeList, Type >::type |
template<typename TypeList , typename Type > | |
using | TypeList::PushBack_t = typename PushBack< TypeList, Type >::type |
template<typename TypeList > | |
using | TypeList::NonEmptyTails_t = typename NonEmptyTails< TypeList >::type |
template<typename TypeList > | |
using | TypeList::Tails_t = typename Tails< TypeList >::type |
template<typename TypeList > | |
using | TypeList::Last_t = typename Last< TypeList >::type |
template<typename TypeList > | |
using | TypeList::ButLast_t = typename ButLast< TypeList >::type |
using | TypeList::Identity = Compose<> |
template<template< typename... > class Template, typename TypeList > | |
using | TypeList::Apply_t = typename Apply< Template, TypeList >::type |
template<typename TupleLike > | |
using | TypeList::Bind_t = typename Bind< TupleLike >::type |
template<typename Metafunction , typename TypeList > | |
using | TypeList::Map_t = typename Map< Metafunction, TypeList >::type |
template<typename Metafunction , typename TypeList > | |
using | TypeList::MapList_t = typename MapList< Metafunction, TypeList >::type |
template<typename... Lists> | |
using | TypeList::Append_t = typename Append< Lists... >::type |
template<template< typename Type, typename Accumulator > class Op, typename TypeList , typename Initial > | |
using | TypeList::LeftFold_t = typename LeftFold< Op, TypeList, Initial >::type |
template<template< typename Prefix, typename Accumulator > class Op, typename TypeList , typename Initial > | |
using | TypeList::LeftFoldList_t = typename LeftFoldList< Op, TypeList, Initial >::type |
template<template< typename Type, typename Accumulator > class Op, typename TypeList , typename Initial > | |
using | TypeList::RightFold_t = typename RightFold< Op, TypeList, Initial >::type |
template<template< typename Tail, typename Accumulator > class Op, typename TypeList , typename Initial > | |
using | TypeList::RightFoldList_t = typename RightFoldList< Op, TypeList, Initial >::type |
template<typename TypeList > | |
using | TypeList::Reverse_t = typename Reverse< TypeList >::type |
template<typename Predicate , typename T > | |
using | TypeList::Call_t = typename Call< Predicate, T >::type |
template<bool Const> | |
using | TypeList::MaybeConst = std::conditional_t< Const, Fn< std::add_const_t >, Identity > |
Conditionally add const to a type. More... | |
template<bool Const, typename TypeList > | |
using | TypeList::MapConst = std::conditional_t< Const, Map< Fn< std::add_const_t >, TypeList >, type_identity< TypeList > > |
Conditionally map const over a type list. More... | |
template<bool Const, typename TypeList > | |
using | TypeList::MapConst_t = typename MapConst< Const, TypeList >::type |
template<typename Predicate , typename T > | |
using | TypeList::Is = Call< Predicate, T > |
Apply a metapredicate to a type. More... | |
template<typename Predicate , typename T > | |
using | TypeList::Is_t = typename Is< Predicate, T >::type |
template<typename Predicate > | |
using | TypeList::Not = Compose< Fn< std::negation >, Predicate > |
template<typename Predicate , typename TypeList > | |
using | TypeList::StablePartition_t = typename StablePartition< Predicate, TypeList >::type |
template<typename Predicate , typename TypeList > | |
using | TypeList::Filter_t = typename Filter< Predicate, TypeList >::type |
Variables | |
template<typename TypeList > | |
constexpr auto | TypeList::Null_v = Null<TypeList>::value |
template<typename TypeList > | |
constexpr auto | TypeList::Length_v = Length_t<TypeList>::value |
template<typename Predicate , typename T > | |
static constexpr bool | TypeList::Is_v |
template<typename Predicate , typename TypeList > | |
constexpr auto | TypeList::Every_v |
The constant value in the corresponding type. More... | |
template<typename Predicate , typename TypeList > | |
constexpr auto | TypeList::Some_v |
The constant value in the corresponding type. More... | |
template<typename Predicate , typename TypeList > | |
constexpr auto | TypeList::NotEvery_v |
The constant value in the corresponding type. More... | |
template<typename Predicate , typename TypeList > | |
constexpr auto | TypeList::NotAny_v |
The constant value in the corresponding type. More... | |
template<typename Item , typename TypeList > | |
constexpr auto | TypeList::In_v |
template<typename Item , typename TypeList > | |
constexpr auto | TypeList::HasBaseIn_v |
Metaprogramming utilities for manipulating lists of types.
Audacity: A Digital Audio Editor
See examples of use in TypeList.cpp
Paul Licameli
Definition in file TypeList.h.