OGS
TMP.h File Reference

Detailed Description

Definition in file TMP.h.

#include <algorithm>
#include <array>
#include <utility>
#include "Algorithm.h"
Include dependency graph for TMP.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  BaseLib::TMP::Concat< List< Types1... >, List< Types2... > >
 
struct  BaseLib::TMP::List<... >
 A list of types. More...
 
struct  BaseLib::TMP::Map< MapFromTypeToType, List< Types... > >
 

Namespaces

namespace  BaseLib
 
namespace  BaseLib::TMP
 
namespace  BaseLib::TMP::detail
 

Typedefs

template<typename List1 , typename List2 >
using BaseLib::TMP::Concat_t = typename Concat<List1, List2>::type
 
template<template< typename > typename MapFromTypeToType, typename List >
using BaseLib::TMP::Map_t = typename Map<MapFromTypeToType, List>::type
 

Functions

template<typename Pred , template< typename... > typename SomeListOfTypes>
constexpr List BaseLib::TMP::detail::filter (Pred, SomeListOfTypes<> *)
 
template<typename Pred , template< typename... > typename SomeListOfTypes, typename Head , typename... Tail>
constexpr decltype(auto) BaseLib::TMP::detail::filter (Pred pred, SomeListOfTypes< Head, Tail... > *)
 
template<typename List , typename Pred >
decltype(auto) BaseLib::TMP::filter (Pred pred)
 
template<template< typename... > typename List, typename Function , typename Head , typename... Tail>
constexpr decltype(auto) BaseLib::TMP::detail::map_to_array (Function &&f, List< Head, Tail... > *)
 
template<template< typename... > typename List, typename Function >
constexpr std::array< std::nullptr_t, 0 > BaseLib::TMP::detail::map_to_array (Function &&, List<> *)
 
template<typename List , typename Function >
constexpr decltype(auto) BaseLib::TMP::map_to_array (Function &&f)
 
template<template< typename... > typename List, typename Function , typename... Types>
void BaseLib::TMP::detail::foreach (Function &&f, List< Types... > *)
 
template<typename List , typename Function >
void BaseLib::TMP::foreach (Function &&f)
 
template<typename List , typename Type >
constexpr bool BaseLib::TMP::contains ()
 Returns if Type is contained in the given List of types.