|
constexpr const_string< 0 > | make_const_string () noexcept |
| Creates an empty instance of const_string<N> More...
|
|
template<size_t N> |
constexpr const_string< N - 1 > | make_const_string (const char(&str)[N]) noexcept |
| Creates an instance of const_string<N> More...
|
|
constexpr const_string< 1 > | make_const_string (char ch) noexcept |
| Creates an instance of const_string<N> More...
|
|
template<size_t N, size_t M> |
constexpr const_string< N+M > | operator+ (const const_string< N > &a, const const_string< M > &b) noexcept |
| Concatenates two const_strings together. More...
|
|
template<size_t N, size_t M> |
constexpr const_string< N+M - 1 > | operator+ (const const_string< N > &a, const char(&b)[M]) noexcept |
| Concatenates a const_string with a C-style string. More...
|
|
template<size_t N, size_t M> |
constexpr const_string< N+M - 1 > | operator+ (const char(&a)[N], const const_string< M > &b) noexcept |
| Concatenates a C-style string with a const_string. More...
|
|
template<size_t N, size_t M> |
constexpr bool | operator== (const const_string< N > &a, const const_string< M > &b) noexcept |
| Compares two const_strings for equality. More...
|
|
template<size_t N, size_t M> |
constexpr bool | operator!= (const const_string< N > &a, const const_string< M > &b) noexcept |
| Compares two const_strings for equality. More...
|
|
template<size_t N, size_t M> |
constexpr bool | operator== (const const_string< N > &a, const char(&b)[M]) noexcept |
| Compares a const_string with a C-style string for equality. More...
|
|
template<size_t N, size_t M> |
constexpr bool | operator!= (const const_string< N > &a, const char(&b)[M]) noexcept |
| Compares a const_string with a C-style string for equality. More...
|
|
template<size_t N, size_t M> |
constexpr bool | operator== (const char(&a)[N], const const_string< M > &b) noexcept |
| Compares a C-style string with a const_string for equality. More...
|
|
template<size_t N, size_t M> |
constexpr bool | operator!= (const char(&a)[N], const const_string< M > &b) noexcept |
| Compares a C-style string with a const_string for equality. More...
|
|
template<size_t N> |
constexpr std::ostream & | operator<< (std::ostream &os, const const_string< N > &str) noexcept |
|
template<typename T = int, typename... Ts> |
constexpr int | ignore (Ts &&...) noexcept |
| Ignores all parameters. More...
|
|
template<typename T > |
constexpr decltype(auto) | identity (T &&t) noexcept |
| Returns the input paratemeter as-is. More...
|
|
template<typename T > |
constexpr const T & | make_const (const T &value) noexcept |
| Adds const to the input reference. More...
|
|
template<typename T > |
constexpr const T & | make_const (T &value) noexcept |
| Adds const to the input reference. More...
|
|
template<typename T , typename... Ts> |
constexpr std::array< T, sizeof...(Ts)> | to_array (const std::tuple< Ts... > &tuple) noexcept |
| Creates an array of type 'T' from the provided tuple. More...
|
|
template<typename T , size_t N> |
constexpr auto | to_tuple (const std::array< T, N > &array) noexcept |
| Creates a tuple from the provided array. More...
|
|
template<typename... Ts> |
constexpr std::tuple< Ts... > | as_tuple (type_list< Ts... >) noexcept |
| Creates a matching std::tuple from a type_list. More...
|
|
template<typename... Ts> |
constexpr type_list< Ts... > | as_type_list (const std::tuple< Ts... > &) noexcept |
| Creates a matching type_list from a std::tuple. More...
|
|
template<typename F , typename... Ts> |
constexpr auto | map_to_tuple (type_list< Ts... > list, F &&f) |
| Applies function F to each type in the type_list, aggregating the results in a tuple. More...
|
|
template<typename T , typename F , typename... Ts> |
constexpr auto | map_to_array (type_list< Ts... > list, F &&f) |
| Applies function F to each type in the type_list, aggregating the results in an array. More...
|
|
template<typename F , typename... Ts> |
constexpr void | for_each (type_list< Ts... > list, F &&f) |
| Applies function F to each type in the type_list. More...
|
|
template<typename R , typename F , typename T , typename... Ts> |
constexpr auto | accumulate (type_list< T, Ts... >, F &&f, R &&initial_value) |
|
template<typename F , typename... Ts> |
constexpr size_t | count_if (type_list< Ts... > list, F &&f) |
| Counts the number of times the predicate F returns true. More...
|
|
template<typename F , typename... Ts> |
constexpr auto | filter (type_list< Ts... > list, F &&f) |
| Filters the list according to a constexpr predicate. More...
|
|
template<typename F , typename... Ts> |
constexpr auto | find_first (type_list< Ts... > list, F &&f) |
| Returns the first instance that matches the constexpr predicate. More...
|
|
template<typename F , typename... Ts> |
constexpr auto | find_one (type_list< Ts... > list, F &&f) |
| Returns the only instance that matches the constexpr predicate. More...
|
|
template<typename F , typename... Ts> |
constexpr bool | contains (type_list< Ts... > list, F &&f) |
| Returns true if any item in the list matches the predicate. More...
|
|
template<typename T , typename... Ts> |
constexpr bool | contains (type_list< Ts... >) |
| Returns true if the type_list contains the specified type. More...
|
|
template<typename T , typename... Ts> |
constexpr bool | contains_base (const std::tuple< Ts... > &) |
| Returns true if the tuple contains the specified type or a supertype. More...
|
|
template<template< typename... > typename T, typename... Ts> |
constexpr bool | contains_instance (const std::tuple< Ts... > &) |
| Returns true if the tuple contains an instance of the specified type. More...
|
|
template<typename... Ts, typename F > |
constexpr auto | apply (type_list< Ts... >, F &&f) |
| Applies a function to the elements of the type_list. More...
|
|
template<size_t N, typename... Ts> |
constexpr auto & | get (std::tuple< Ts... > &ts) noexcept |
| A synonym for std::get<N>(tuple). More...
|
|
template<size_t N, typename... Ts> |
constexpr const auto & | get (const std::tuple< Ts... > &ts) noexcept |
| A synonym for std::get<N>(tuple). More...
|
|
template<typename T , typename... Ts> |
constexpr T & | get (std::tuple< Ts... > &ts) noexcept |
| A synonym for std::get<T>(tuple). More...
|
|
template<typename T , typename... Ts> |
constexpr const T & | get (const std::tuple< Ts... > &ts) noexcept |
| A synonym for std::get<T>(tuple). More...
|
|
template<template< typename... > typename T, typename... Ts> |
constexpr auto & | get_instance (std::tuple< Ts... > &ts) noexcept |
| Returns the value of type U, where U is a template instance of T. More...
|
|
template<template< typename... > typename T, typename... Ts> |
constexpr const auto & | get_instance (const std::tuple< Ts... > &ts) noexcept |
| Returns the value of type U, where U is a template instance of T. More...
|
|
template<typename... Ts> |
constexpr type_list< descriptor::type_descriptor< Ts >... > | reflect_types (type_list< Ts... >) noexcept |
| Converts a type_list of types to a type_list of the type_descriptors for these types. More...
|
|
template<typename... Ts> |
constexpr type_list< Ts... > | unreflect_types (type_list< descriptor::type_descriptor< Ts >... >) noexcept |
| Converts a type_list of type_descriptors to a type_list of the target types. More...
|
|
Contains utility types and functions for working with those types.