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.