Nano
A C++ template metaprogramming library
Classes | Namespaces | Typedefs
list.hpp File Reference

Header file for the list metaclass to provide compile time lists. More...

#include <nano/functions.hpp>
#include <cassert>
Include dependency graph for list.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  nano::list< Ts >
 Meta class that holds types, and allows functions to be applied to the elements of the list using the internal apply struct.

Usage:

using nano::dim; \ To get dimension types
using test_list = list<i, j, k, l>; \ A list of dimensions

using shifted_list = list::apply<shift>;

Where shift is some function which operates on a type in the list. More...
 
struct  nano::detail::get< Index, List >
 Meta function to get an element from a list. More...
 
struct  nano::detail::get< nano::size_t< Index >, list< Head, Tail...> >
 
struct  nano::detail::get< nano::size_t< 0 >, list< Head, Tail...> >
 
struct  nano::find_type< Type, List >
 Find the index of a specific type in the list (the index of the first occurrence).
If the type is not found then the value 'parameter' will be -1. More...
 
struct  nano::find_type< Type, list< Head, Tail...> >
 
struct  nano::find_type< Type, list< Type, Tail...> >
 
struct  nano::find_type< Type, list<> >
 
struct  nano::type_not_present< Type, List >
 To check if a type in a list is not found. Where the find_type tries to find a type and get its index to return, this function simply returns true of the type is not found, and false if the tpe is found. More...
 
struct  nano::type_not_present< Type, list< Head, Tail...> >
 
struct  nano::type_not_present< Type, list< Type, Tail...> >
 
struct  nano::type_not_present< Type, list<> >
 
struct  nano::first_not_present< Type, List >
 Just check if the first element of the list was found (searching should be done beforehand) More...
 
struct  nano::first_not_present< Type, list< Head, Tail...> >
 
struct  nano::join< List1, List2 >
 Joins two lists. More...
 
struct  nano::join< list< Ts...>, list< Us...> >
 

Namespaces

 nano
 
 nano::detail
 

Typedefs

using nano::empty_list = list<>
 
template<std::size_t Index, typename List >
using nano::get = typename detail::get< nano::size_t< Index >, List >::result
 

Detailed Description

Header file for the list metaclass to provide compile time lists.