Meta  0.1
A tiny metaprogramming library
List

Description

Modules

 lazy
 

Classes

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

Typedefs

template<typename Sequence >
using meta::as_list = _t< detail::as_list_< Sequence >>
 Turn a type into an instance of meta::list in a way determined by meta::invoke.
 
template<typename List , typename N >
using meta::at = _t< detail::at_< List, N >>
 Return the N th element in the meta::list List. More...
 
template<typename List , std::size_t N>
using meta::at_c = at< List, meta::size_t< N >>
 Return the N th element in the meta::list List. More...
 
template<typename List >
using meta::back = _t< detail::back_< List >>
 Return the last element in meta::list List. More...
 
template<typename List >
using meta::empty = bool_< 0==size< List >::type::value >
 An Boolean integral constant wrapper around true if List 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<typename List >
using meta::front = _t< detail::front_< List >>
 Return the first element in meta::list List. 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<typename N , typename T = void>
using meta::repeat_n = _t< detail::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_< N, T >>
 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<typename List >
using meta::size = meta::size_t< List::size()>
 An integral constant wrapper that is the size of the meta::list List.
 

Typedef Documentation

template<typename List , typename N >
using meta::at = typedef _t<detail::at_<List, N>>

#include <meta/meta.hpp>

Return the N th element in the meta::list List.

Complexity
Amortized $ O(1) $.

Definition at line 1303 of file meta.hpp.

template<typename List , std::size_t N>
using meta::at_c = typedef at<List, meta::size_t<N>>

#include <meta/meta.hpp>

Return the N th element in the meta::list List.

Complexity
Amortized $ O(1) $.

Definition at line 1310 of file meta.hpp.

template<typename List >
using meta::back = typedef _t<detail::back_<List>>

#include <meta/meta.hpp>

Return the last element in meta::list List.

Complexity
Amortized $ O(1) $.

Definition at line 1440 of file meta.hpp.

template<typename List >
using meta::empty = typedef bool_<0 == size<List>::type::value>

#include <meta/meta.hpp>

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

Complexity
$ O(1) $.

Definition at line 1592 of file meta.hpp.

template<typename List >
using meta::front = typedef _t<detail::front_<List>>

#include <meta/meta.hpp>

Return the first element in meta::list List.

Complexity
$ O(1) $.

Definition at line 1407 of file meta.hpp.

template<typename N , typename T = void>
using meta::repeat_n = typedef _t<detail::repeat_n_c_<N::type::value, T>>

#include <meta/meta.hpp>

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

Complexity
$ O(log N) $.

Definition at line 1249 of file meta.hpp.

template<std::size_t N, typename T = void>
using meta::repeat_n_c = typedef _t<detail::repeat_n_c_<N, T>>

#include <meta/meta.hpp>

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

Complexity
$ O(log N) $.

Definition at line 1256 of file meta.hpp.