Meta  0.1
A tiny metaprogramming library
Invocation

Description

Trait invocation.

Modules

 lazy
 

Classes

struct  meta::defer< C, Ts >
 A wrapper that defers the instantiation of a template C with type parameters Ts in a lambda or let expression. More...
 
struct  meta::defer_i< T, C, Is >
 A wrapper that defers the instantiation of a template C with integral constant parameters Is in a lambda or let expression. More...
 
struct  meta::id< T >
 A trait that always returns its argument T. Also, a Callable that always returns T. More...
 

Typedefs

template<typename T >
using meta::_t = typename T::type
 Type alias for T::type.
 
template<typename C , typename List >
using meta::apply = _t< extension::apply< C, List >>
 Applies the Callable C using the types in the type list List as arguments.
 
template<template< typename... > class C, typename... Ts>
using meta::defer_trait = lazy::_t< defer< C, Ts... >>
 A wrapper that defers the instantiation of a trait C with type parameters Ts in a lambda or let expression. More...
 
template<typename T , template< T... > class C, T... Is>
using meta::defer_trait_i = lazy::_t< defer_i< T, C, Is... >>
 A wrapper that defers the instantiation of a trait C with integral constant parameters Is in a lambda or let expression. More...
 
template<typename F , typename... Args>
using meta::invoke = typename F::template invoke< Args... >
 Evaluate the Callable F with the arguments Args.
 

Variables

template<typename T >
constexpr T::type::value_type meta::_v = T::type::value
 Variable alias for T::type::value. More...
 

Typedef Documentation

template<template< typename... > class C, typename... Ts>
using meta::defer_trait = typedef lazy::_t<defer<C, Ts...>>

#include <meta/meta.hpp>

A wrapper that defers the instantiation of a trait C with type parameters Ts in a lambda or let expression.

See also
defer

Definition at line 547 of file meta.hpp.

template<typename T , template< T... > class C, T... Is>
using meta::defer_trait_i = typedef lazy::_t<defer_i<T, C, Is...>>

#include <meta/meta.hpp>

A wrapper that defers the instantiation of a trait C with integral constant parameters Is in a lambda or let expression.

See also
defer

Definition at line 556 of file meta.hpp.

Variable Documentation

template<typename T >
constexpr T::type::value_type meta::_v = T::type::value

#include <meta/meta.hpp>

Variable alias for T::type::value.

Note
Requires C++14 or greater.

Definition at line 147 of file meta.hpp.