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.