Range-v3
Range algorithms, views, and actions for the Standard Library
meta_fwd.hpp File Reference

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::detail::require_constant< T, T >
 
struct  meta::extension::apply< Fn, L >
 A trait that unpacks the types in the type list L into the invocable Fn. More...
 
struct  meta::id< T >
 A trait that always returns its argument T. It is also an invocable that always returns T. More...
 
struct  meta::list< Ts >
 A list of types. 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...
 

Namespaces

 meta
 Tiny metaprogramming library.
 
 meta::extension
 Extend meta with your own datatypes.
 

Variables

template<bool B>
constexpr bool meta::detail::barrier = B
 
template<typename T >
concept meta::integral
 
template<typename T >
concept meta::invocable
 
template<typename... >
concept meta::is_true = true
 
template<typename , template< typename... > class>
constexpr bool meta::is_v = false
 is_v Test whether a type T is an instantiation of class template C.
 
template<typename... Ts, template< typename... > class C>
constexpr bool meta::is_v< C< Ts... >, C > = true
 
template<typename T >
concept meta::list_like = is_v<T, list>
 
template<typename T , typename U >
concept meta::same_as
 
template<typename T >
concept meta::trait
 
template<template< typename... > class C, typename... Ts>
concept meta::valid
 
template<typename T , template< T... > class C, T... Is>
concept meta::valid_i
 

Detailed Description

Forward declarations