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