Range-v3
Range algorithms, views, and actions for the Standard Library
list_like

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).