list_like
Meta » Datatype

## Modules

| lazy

## Classes

struct | meta::list< Ts >
| A list of types. More...

## Typedefs

template<typename Sequence >
using | meta::as_list = _t< detail::as_list_< detail::uncvref_t< Sequence > >>
| Turn a type into an instance of `meta::list` in a way determined by `meta::apply`.
template<list_like L, integral N>
using | meta::at = at_c< L, N::type::value >
| Return the `N` th element in the `meta::list` `L`. More...
template<list_like L, std::size_t N>
using | meta::at_c = _t< detail::at_< L, N > >
| Return the `N` th element in the `meta::list` `L`. More...
template<list_like L>
using | meta::back = _t< detail::back_< L > >
| Return the last element in `meta::list` `L`. More...
template<list_like L>
using | meta::empty = bool_< 0==size< L >::type::value >
| An Boolean integral constant wrapper around `true` if `L` is an empty type list; `false`, otherwise. More...
template<typename Pair >
using | meta::first = front< Pair >
| Retrieve the first element of the `pair` `Pair`.
template<list_like L>
using | meta::front = _t< detail::front_< L > >
| Return the first element in `meta::list` `L`. More...
using | meta::npos = meta::size_t< std::size_t(-1)>
| A special value used to indicate no matches. It equals the maximum value representable by std::size_t.
template<typename F , typename S >
using | meta::pair = list< F, S >
| A list with exactly two elements.
template<integral N, typename T = void>
using | meta::repeat_n = repeat_n_c< N::type::value, T >
| Generate `list<T,T,T...T>` of size `N` arguments. More...
template<std::size_t N, typename T = void>
using | meta::repeat_n_c = _t< detail::repeat_n_c_< T, make_index_sequence< N > >>
| Generate `list<T,T,T...T>` of size `N` arguments. More...
template<typename Pair >
using | meta::second = front< pop_front< Pair > >
| Retrieve the first element of the `pair` `Pair`.
template<list_like L>
using | meta::size = meta::size_t< L::size()>
| An integral constant wrapper that is the size of the `meta::list` `L`.

## Detailed Description

## Typedef Documentation

## at

template<list_like L, integral N>

using meta::at = typedef at_c<L, N::type::value>

`#include <meta/meta.hpp>`

Return the `N` th element in the `meta::list` `L`.

Complexity
  Amortized `O(1)`.

## at_c

template<list_like L, std::size_t N>

using meta::at_c = typedef _t<detail::at_<L, N> >

`#include <meta/meta.hpp>`

Return the `N` th element in the `meta::list` `L`.

Complexity
  Amortized `O(1)`.

## back

template<list_like L>

using meta::back = typedef _t<detail::back_<L> >

`#include <meta/meta.hpp>`

Return the last element in `meta::list` `L`.

Complexity
  Amortized `O(1)`.

## empty

template<list_like L>

using meta::empty = typedef bool_<0 == size<L>::type::value>

`#include <meta/meta.hpp>`

An Boolean integral constant wrapper around `true` if `L` is an empty type list; `false`, otherwise.

Complexity
  `O(1)`.

## front

template<list_like L>

using meta::front = typedef _t<detail::front_<L> >

`#include <meta/meta.hpp>`

Return the first element in `meta::list` `L`.

Complexity
  `O(1)`.

## repeat_n

template<integral N, typename T = void>

using meta::repeat_n = typedef repeat_n_c<N::type::value, T>

related

`#include <meta/meta.hpp>`

Generate `list<T,T,T...T>` of size `N` arguments.

Complexity
  `O(log N)`.

## repeat_n_c

template<std::size_t N, typename T = void>

using meta::repeat_n_c = typedef _t<detail::repeat_n_c_<T, make_index_sequence<N> >>

`#include <meta/meta.hpp>`

Generate `list<T,T,T...T>` of size `N` arguments.

Complexity
  `O(log N)`.