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

Trait invocation. More...

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...
 

Detailed Description

Trait invocation.

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.