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::integer_sequence< T, Is >
 A container for a sequence of compile-time integer constants. 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.
 

Macros

#define META_CONCEPT   concept
 
#define META_CONCEPT_BARRIER(...)   __VA_ARGS__
 
#define META_CXX_FOLD_EXPRESSIONS   (META_CXX_VER >= META_CXX_STD_17)
 
#define META_CXX_INLINE_VARIABLES   (META_CXX_VER >= META_CXX_STD_17)
 
#define META_CXX_INTEGER_SEQUENCE   (META_CXX_VER >= META_CXX_STD_14)
 
#define META_CXX_STD_14   201402L
 
#define META_CXX_STD_17   201703L
 
#define META_CXX_TRAIT_VARIABLE_TEMPLATES   0
 
#define META_CXX_VARIABLE_TEMPLATES   (META_CXX_VER >= META_CXX_STD_14)
 
#define META_CXX_VER   __cplusplus
 
#define META_DEPRECATED(...)
 
#define META_HAS_MAKE_INTEGER_SEQ   0
 
#define META_HAS_TYPE_PACK_ELEMENT   0
 
#define META_INLINE_VAR
 
#define META_IS_BASE_OF(...)   std::is_base_of<__VA_ARGS__>::value
 
#define META_IS_CONSTRUCTIBLE(...)   std::is_constructible<__VA_ARGS__>::value
 
#define META_IS_SAME(...)   std::is_same<__VA_ARGS__>::value
 
#define META_TYPE_CONSTRAINT(...)   __VA_ARGS__
 

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