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

Modules | Classes | Typedefs | Variables
Invocation
Meta » Trait

## 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`. It is also an invocable that always returns `T`. More...

## Typedefs
template<trait T>
using | meta::_t = typename T::type
| Type alias for `T::type`.
template<invocable Fn, typename L >
using | meta::apply = _t< extension::apply< Fn, L > >
| Applies the invocable `Fn` using the types in the type list `L` as arguments.
template<template< typename... > class C, typename... Ts>
using | meta::defer_trait = defer< detail::_t_t, detail::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 = defer< detail::_t_t, detail::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<invocable Fn, typename... Args>
using | meta::invoke = typename Fn::template invoke< Args... >
| Evaluate the invocable `Fn` with the arguments `Args`.

## Variables
template<integral T>
constexpr T::type::value_type | meta::_v = T::type::value
| Variable alias for `T::type::value`. More...

## Typedef Documentation

## ◆ defer_trait

template<template< typename... > class C, typename... Ts>

using meta::defer_trait = typedef defer<detail::_t_t, detail::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`

## ◆ defer_trait_i

template<typename T , template< T... > class C, T... Is>

using meta::defer_trait_i = typedef defer<detail::_t_t, detail::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_i`

## Variable Documentation

## ◆ _v

template<integral T>

constexpr T::type::value_type meta::_v = T::type::value
| constexpr

`#include <meta/meta.hpp>`

Variable alias for `T::type::value`.

Note
  Requires C++14 or greater.