Trait composition. More...
Modules | |
lazy | |
Classes | |
struct | meta::bind_back< Fn, Us > |
An invocable that partially applies the invocable Fn by binding the arguments Us to the back of Fn . More... | |
struct | meta::bind_front< Fn, Ts > |
An invocable that partially applies the invocable Fn by binding the arguments Ts to the front of Fn . More... | |
struct | meta::compose_< Fns > |
Compose the Invocables Fns in the parameter pack Ts . More... | |
struct | meta::flip< Fn > |
An invocable that reverses the order of the first two arguments. More... | |
struct | meta::quote< C > |
Turn a template C into an invocable. More... | |
struct | meta::quote_i< T, C > |
Turn a template C taking literals of type T into a invocable. More... | |
Typedefs | |
template<invocable Fn, invocable Q = quote<list>> | |
using | meta::curry = compose< Fn, Q > |
An invocable that takes a bunch of arguments, bundles them into a type list, and then calls the invocable Fn with the type list Q . | |
template<invocable ... Fns> | |
using | meta::on_ = detail::on_< Fns... > |
Use as on<Fn, Gs...> . Creates an invocable that applies invocable Fn to the result of applying invocable 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 an invocable. More... | |
template<typename T , template< T... > class C> | |
using | meta::quote_trait_i = compose< quote< _t >, quote_i< T, C > > |
Turn a trait template C taking literals of type T into an invocable. | |
template<invocable Fn> | |
using | meta::uncurry = bind_front< quote< apply >, Fn > |
An invocable that takes a type list, unpacks the types, and then calls the invocable Fn with the types. | |
Trait composition.
using meta::quote_trait = typedef compose<quote<_t>, quote<C> > |
#include <meta/meta.hpp>
Turn a trait template C
into an invocable.