repr 0.1
Reconstructable string representations and more
Loading...
Searching...
No Matches
librepr::ValueListBase< List, Vs > Struct Template Reference

#include <list.h>

Inheritance diagram for librepr::ValueListBase< List, Vs >:
[legend]
Collaboration diagram for librepr::ValueListBase< List, Vs >:
[legend]

Public Types

template<template< typename... > class T = TypeList>
using wrap = pack::wrap< T, Vs... >
 
template<template< typename... > class T = TypeList>
using types = T< decltype(Vs)... >
 
template<std::size_t Idx>
using do_split = pack::Split< Idx, List< Vs... > >
 
template<std::size_t Idx>
using split = TypeList< pack::unwrap< List, typename do_split< Idx >::head >, pack::unwrap< List, typename do_split< Idx >::tail > >
 
template<std::size_t Idx>
using head = typename do_split< Idx >::head
 
template<std::size_t Idx>
using tail = typename do_split< Idx >::tail
 
template<auto V>
using append = List< Vs..., V >
 
template<auto V>
using prepend = List< V, Vs... >
 
template<template< auto... > class T>
using to = T< Vs... >
 

Static Public Member Functions

template<typename F , typename... Args>
static constexpr decltype(auto) invoke (F &&callable, Args &&... args)
 
template<typename F , typename... Args>
static constexpr void for_each (F &&callable, Args &&... args)
 
template<typename F , typename... Args>
static constexpr void enumerate (F &&callable, Args &&... args)
 

Static Public Attributes

static constexpr std::size_t size = sizeof...(Vs)
 
template<std::size_t Idx>
static constexpr auto get = wrap<>::template get<Idx>::type::value
 

Member Typedef Documentation

◆ append

template<template< auto... > class List, auto... Vs>
template<auto V>
using librepr::ValueListBase< List, Vs >::append = List<Vs..., V>

◆ do_split

template<template< auto... > class List, auto... Vs>
template<std::size_t Idx>
using librepr::ValueListBase< List, Vs >::do_split = pack::Split<Idx, List<Vs...> >

◆ head

template<template< auto... > class List, auto... Vs>
template<std::size_t Idx>
using librepr::ValueListBase< List, Vs >::head = typename do_split<Idx>::head

◆ prepend

template<template< auto... > class List, auto... Vs>
template<auto V>
using librepr::ValueListBase< List, Vs >::prepend = List<V, Vs...>

◆ split

◆ tail

template<template< auto... > class List, auto... Vs>
template<std::size_t Idx>
using librepr::ValueListBase< List, Vs >::tail = typename do_split<Idx>::tail

◆ to

template<template< auto... > class List, auto... Vs>
template<template< auto... > class T>
using librepr::ValueListBase< List, Vs >::to = T<Vs...>

◆ types

template<template< auto... > class List, auto... Vs>
template<template< typename... > class T = TypeList>
using librepr::ValueListBase< List, Vs >::types = T<decltype(Vs)...>

◆ wrap

template<template< auto... > class List, auto... Vs>
template<template< typename... > class T = TypeList>
using librepr::ValueListBase< List, Vs >::wrap = pack::wrap<T, Vs...>

Member Function Documentation

◆ enumerate()

template<template< auto... > class List, auto... Vs>
template<typename F , typename... Args>
static constexpr void librepr::ValueListBase< List, Vs >::enumerate ( F &&  callable,
Args &&...  args 
)
inlinestaticconstexpr

◆ for_each()

template<template< auto... > class List, auto... Vs>
template<typename F , typename... Args>
static constexpr void librepr::ValueListBase< List, Vs >::for_each ( F &&  callable,
Args &&...  args 
)
inlinestaticconstexpr

◆ invoke()

template<template< auto... > class List, auto... Vs>
template<typename F , typename... Args>
static constexpr decltype(auto) librepr::ValueListBase< List, Vs >::invoke ( F &&  callable,
Args &&...  args 
)
inlinestaticconstexpr

Member Data Documentation

◆ get

template<template< auto... > class List, auto... Vs>
template<std::size_t Idx>
constexpr auto librepr::ValueListBase< List, Vs >::get = wrap<>::template get<Idx>::type::value
staticconstexpr

◆ size

template<template< auto... > class List, auto... Vs>
constexpr std::size_t librepr::ValueListBase< List, Vs >::size = sizeof...(Vs)
staticconstexpr

The documentation for this struct was generated from the following file: