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.