SpiecsEngine
 
Loading...
Searching...
No Matches
TypeList.h File Reference

The TypeList Class Definitions and Implementation. More...

#include <type_traits>
#include <tuple>

Go to the source code of this file.

Classes

struct  Spices::type_list< Args >
 Container of store Types. More...
 
struct  Spices::detail::head< type_list< T, Remains... > >
 Implementation of head. Get first element of type_list. More...
 
struct  Spices::detail::tail< type_list< T, Remains... > >
 Implementation of tail. Get elements of type_list except the first. More...
 
struct  Spices::detail::nth< type_list< T, Remains... >, 0 >
 Implementation of nth(end condition). Get element of type_list by index 0. More...
 
struct  Spices::detail::nth< type_list< T, Remains... >, N >
 Implementation of nth. Get element of type_list by specific index. More...
 
struct  Spices::detail::count< type_list< T, Remains... >, F, 0 >
 Implementation of count(end condition). Calculate count that meets requirement. More...
 
struct  Spices::detail::count< type_list< T, Remains... >, F, N >
 Implementation of count. Calculate count that meets requirement. More...
 
struct  Spices::detail::map< type_list< Args... >, F >
 Implementation of map. Replace type with a new type. More...
 
struct  Spices::detail::cons< T, type_list< Args... > >
 Implementation of cons. Push a param to params first. More...
 
struct  Spices::detail::concat< type_list< Args1... >, type_list< Args2... > >
 Implementation of concat. Combine two type_list. More...
 
struct  Spices::detail::init< type_list< T > >
 Implementation of init(end condition). Keep params except last. More...
 
struct  Spices::detail::init< type_list< T, Remains... > >
 Implementation of init. Keep params except last. More...
 
struct  Spices::detail::filter< type_list<>, F >
 Implementation of filter(end condition). Keep elements except last. More...
 
struct  Spices::detail::filter< type_list< T, Remains... >, F >
 Implementation of filter. Keep elements except filtered. More...
 

Namespaces

namespace  Spices
 
namespace  Spices::detail
 

Typedefs

template<typename TypeList >
using Spices::head = typename detail::head<TypeList>::type
 Get first element of type_list.
 
template<typename TypeList >
using Spices::tail = typename detail::tail<TypeList>::type
 Get elements of type_list except the first.
 
template<typename TypeList , size_t N>
using Spices::nth = typename detail::nth<TypeList, N>::type
 Get element of type_list by specific index.
 
template<typename TypeList , template< typename > typename F>
using Spices::map = typename detail::map<TypeList, F>::type
 Replace type with a new type.
 
template<typename T , typename TypeList >
using Spices::cons = typename detail::cons<T, TypeList>::type
 Push a element to elements first.
 
template<typename TypeList1 , typename TypeList2 >
using Spices::concat = typename detail::concat<TypeList1, TypeList2>::type
 Combine two type_list.
 
template<typename TypeList >
using Spices::init = typename detail::init<TypeList>::type
 Keep elements except last.
 
template<typename TypeList , template< typename > typename F>
using Spices::filter = typename detail::filter<TypeList, F>::type
 Keep elements except filtered.
 

Variables

template<typename TypeList , template< typename > typename F>
constexpr int Spices::count = detail::count<TypeList, F, TypeList::size - 1>::value
 Calculate count that meets requirement.
 

Detailed Description

The TypeList Class Definitions and Implementation.

Author
VisualGMQ.

Definition in file TypeList.h.