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

Classes | Namespaces | Variables
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