Range-v3
Range algorithms, views, and actions for the Standard Library
 
Loading...
Searching...
No Matches
Invocation

Trait invocation More...

Topics

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

Detailed Description

Trait invocation

Typedef Documentation

◆ defer_trait

template<template< typename... > class C, typename... Ts>
using meta::defer_trait = 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 = 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>
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.