RESTinio
Classes | Namespaces | Typedefs | Variables
metaprogramming.hpp File Reference

Various tools for C++ metaprogramming. More...

#include <type_traits>

Go to the source code of this file.

Classes

struct  restinio::utils::metaprogramming::make_void< Ts >
 
struct  restinio::utils::metaprogramming::type_list< Types >
 The basic building block: a type for representation of a type list. More...
 
struct  restinio::utils::metaprogramming::impl::head_of< T, Rest >
 
struct  restinio::utils::metaprogramming::impl::head_of< T >
 
struct  restinio::utils::metaprogramming::impl::tail_of< T, Rest >
 
struct  restinio::utils::metaprogramming::impl::tail_of< L >
 
struct  restinio::utils::metaprogramming::impl::put_front< T, L< Rest... > >
 
struct  restinio::utils::metaprogramming::impl::rename< From< Types... >, To >
 
struct  restinio::utils::metaprogramming::impl::transform< Transform_F, From< Sources... >, To< Results... > >
 
struct  restinio::utils::metaprogramming::impl::transform< Transform_F, From<>, To< Results... > >
 
struct  restinio::utils::metaprogramming::impl::all_of< Predicate, H, Tail >
 
struct  restinio::utils::metaprogramming::impl::all_of< Predicate, H >
 
struct  restinio::utils::metaprogramming::impl::all_of< Predicate, type_list< Types... > >
 

Namespaces

namespace  restinio
 
namespace  restinio::utils
 
namespace  restinio::utils::metaprogramming
 
namespace  restinio::utils::metaprogramming::impl
 

Typedefs

template<typename... Ts>
using restinio::utils::metaprogramming::void_t = typename make_void< Ts... >::type
 
template<typename... L>
using restinio::utils::metaprogramming::head_of_t = typename impl::head_of< L... >::type
 Metafunction to get the first item from a list of types. More...
 
template<typename... L>
using restinio::utils::metaprogramming::tail_of_t = typename impl::tail_of< L... >::type
 Metafunction to get the tail of a list of types in a form of type_list. More...
 
template<typename T , typename Rest >
using restinio::utils::metaprogramming::put_front_t = typename impl::put_front< T, Rest >::type
 Metafunction to insert a type to the front of a type_list. More...
 
template<typename From , template< class... > class To>
using restinio::utils::metaprogramming::rename_t = typename impl::rename< From, To >::type
 Allows to pass all template arguments from one type to another. More...
 
template<template< class... > class Transform_F, typename From >
using restinio::utils::metaprogramming::transform_t = typename impl::transform< Transform_F, From, type_list<> >::type
 Applies a specified meta-function to every item from a specified type-list and return a new type-list. More...
 

Variables

template<template< class... > class Predicate, typename... List>
constexpr bool restinio::utils::metaprogramming::all_of_v = impl::all_of<Predicate, List...>::value
 Applies the predicate to all types from the list and return true only if all types satisty that predicate. More...
 

Detailed Description

Various tools for C++ metaprogramming.

Since
v.0.6.1

Definition in file metaprogramming.hpp.