Range-v3
Range algorithms, views, and actions for the Standard Library
Composition

Description

Trait composition.

Modules

 lazy
 

Classes

struct  meta::bind_back< F, Us >
 A Callable that partially applies the Callable F by binding the arguments Us to the back of F. More...
 
struct  meta::bind_front< F, Ts >
 A Callable that partially applies the Callable F by binding the arguments Ts to the front of F. More...
 
struct  meta::compose< Fs >
 Compose the Callables Fs in the parameter pack Ts. More...
 
struct  meta::flip< F >
 A Callable that reverses the order of the first two arguments. More...
 
struct  meta::quote< C >
 Turn a class template or alias template C into a Callable. More...
 
struct  meta::quote_i< T, C >
 Turn a class template or alias template C taking literals of type T into a Callable. More...
 

Typedefs

template<typename F , typename Q = quote<list>>
using meta::curry = compose< F, Q >
 A Callable that takes a bunch of arguments, bundles them into a type list, and then calls the Callable F with the type list Q.
 
template<typename... Fs>
using meta::on = detail::on_< Fs... >
 Use as on<F, Gs...>. Creates an Callable that applies Callable F to the result of applying Callable compose<Gs...> to all the arguments.
 
template<template< typename... > class C>
using meta::quote_trait = compose< quote< _t >, quote< C > >
 Turn a trait template C into a Callable. More...
 
template<typename T , template< T... > class C>
using meta::quote_trait_i = compose< quote< _t >, quote_i< T, C > >
 Turn a trait C taking literals of type T into a Callable. More...
 
template<typename F >
using meta::uncurry = bind_front< quote< apply >, F >
 A Callable that takes a type list, unpacks the types, and then calls the Callable F with the types.
 

Typedef Documentation

◆ quote_trait

template<template< typename... > class C>
using meta::quote_trait = typedef compose<quote<_t>, quote<C> >

#include <meta/meta.hpp>

Turn a trait template C into a Callable.

static_assert(std::is_same<invoke<quote_trait<std::add_const>, int>, int const>::value, "");

◆ quote_trait_i

template<typename T , template< T... > class C>
using meta::quote_trait_i = typedef compose<quote<_t>, quote_i<T, C> >

#include <meta/meta.hpp>

Turn a trait C taking literals of type T into a Callable.

See also
'meta::quote_trait'