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 |
Forward declarations