|
Templa 0.0.1-alpha
C++ Metaprogramming Utilities
|
| Ntempla | |
| Nalgorithms | |
| Cjoin | Compile-time string concatenation of multiple std::string_view references |
| Cmax | Computes the maximum value among a pack of compile-time constants |
| Cmax_from | Computes the maximum value from a container-like object at compile time |
| Cmin | Computes the minimum value among a pack of compile-time constants |
| Cmin_from | Computes the minimum value from a container-like object at compile time |
| Creverse | Reverses a compile-time pack of constant values |
| Creverse_from | Reverses the elements of a constexpr container at compile time |
| Cunique | Computes a compile-time unique sequence from a pack of values |
| Cunique_from | Computes a compile-time unique sequence from a container expression |
| Nconcepts | |
| Cis_basic_string | Helper struct to detect if a type is std::basic_string |
| Cis_basic_string< std::basic_string< C, T, A > > | |
| Nconvert | |
| Cconvert_to_tuple | Converts a pack of types into a std::tuple of those types |
| Cconvert_to_tuple< From< Ts... > > | Converts a template instantiation of types into a std::tuple of those types |
| Cconvert_to_variant | Converts a pack of types into a std::variant of those types |
| Cconvert_to_variant< From< Ts... > > | Converts a template instantiation of types into a std::variant of those types |
| Ninternal | |
| Nhidden | Internal utilities and implementation details |
| Celement_pack | A template pack holding a list of values of type T |
| Cpack | A template pack to hold a variadic list of types |
| Cforward_elements | Forward a list of elements as a std::array |
| Cforward_elements_from | Extract elements from a container-like template parameter as a new container |
| Ctype_list | A compile-time list of types |
| Ctype_list< T< Ts... > > | Specialization for wrapping a template class parameter pack into a type_list |
| Cuniform_element_identity | Uniform element identity helper for a list of values |
| Cvisitor | Helper visitor struct inheriting from multiple function objects |
| Ntraits | |
| Cfunction_traits | Primary template for function traits. Specialization used to extract traits from functor types (e.g., lambdas) |
| Cargument | Retrieves the type of the N-th argument |
| Cfunction_traits< F & > | Lvalue reference specialization |
| Cfunction_traits< F && > | Rvalue reference specialization |
| Cfunction_traits< R(*)(Args...)> | Specialization for function pointer types |
| Cfunction_traits< R(Args...)> | Specialization for regular function types |
| Cargument | Retrieves the type of the N-th argument |
| Cfunction_traits< R(C::*)(Args...) const > | Specialization for const member function pointers |
| Cfunction_traits< R(C::*)(Args...)> | Specialization for member function pointers |
| Cfunction_traits< R(C::*)> | Specialization for pointer-to-member types |
| Cstrip | Recursively strips const, volatile qualifiers and pointers from a type |
| Cstrip< const T * > | |
| Cstrip< const T > | |
| Cstrip< const volatile T * > | |
| Cstrip< const volatile T > | |
| Cstrip< T * > | |
| Cstrip< volatile T * > | |
| Cstrip< volatile T > | |
| Ntype_info | |
| Nctti | |
| Chash_t | Generates a unique type identifier for a type C at compile time |
| Cname_of | Primary template to get the string name of a type |
| Cname_of< char > | Specialization for char |
| Cname_of< float > | Specialization for float |
| Cname_of< int > | Specialization for int |
| Cname_of< long > | Specialization for long |
| Cname_of< std::uint16_t > | Specialization for std::uint16_t |
| Cname_of< std::uint32_t > | Specialization for std::uint32_t |
| Cname_of< std::uint64_t > | Specialization for std::uint64_t |
| Cname_of< std::uint8_t > | Specialization for std::uint8_t |
| Cname_of< void > | Specialization for void |
| Ctype_descriptor | Provides a human-readable string description of the type T, including qualifiers and pointers |
| CFlagEnum | A utility wrapper for using scoped or unscoped enum types as bit flags |
| Cindex_at_type | Get the index of a type in a type list |
| Cindex_at_type< T, U< List... > > | Get the index of a type in a templated type list |
| Coffset_index_sequence | Utility to create an offset std::index_sequence |
| Coffset_index_sequence< Offset, std::index_sequence< Is... > > | Specialization for generating an offset index sequence |
| Ctype_at_index | Get the type at a given index in a parameter pack |
| Ctype_at_index< idx, T< Ts... > > | Get the type at a given index in a templated type list |
| Ctype_list_append | Appends types or type lists to an existing type list |
| Ctype_list_append< Initial< Inits... >, Appender< Apps... > > | Specialization to append one type list to another |
| Ctype_list_append< Initial< Inits... >, Elem > | Append a single type to a type list |
| Ctype_list_contains | Check if a type list contains a given type |
| Ctype_list_contains< T, U< Ts... > > | Check if a templated type list contains a given type |
| Ctype_list_flatten | Recursively flattens nested type_lists into a single flat type_list |
| Ctype_list_flatten< internal::type_list< Ts... > > | If the input is a type_list, recurse into its elements |
| Ctype_list_flatten< T > | If the input is a non-type_list type, return it as a single-element type_list |
| Ctype_list_flatten< T, Rest... > | Recursive case: flatten head and tail separately and append results |
| Ctype_list_flatten<> | Base case: flattening an empty list yields an empty type_list |
| Ctype_list_pop_back | Remove the last type from a type list |
| Ctype_list_pop_back< Head, Mid, Tail... > | Remove the last type from a longer pack recursively |
| Ctype_list_pop_back< Head, Tail > | Specialization for exactly two types: last type is popped |
| Ctype_list_pop_back< Tlist< Ts... > > | Remove the last type from a templated type list |
| Ctype_list_pop_front | Remove the first type from a type list |
| Ctype_list_pop_front< T, Ts... > | Remove the first type from a pack of types |
| Ctype_list_pop_front< Tlist< U, Ts... > > | Remove the first type from a templated type list |
| Ctype_list_prepend | Prepends types or type lists to an existing type list |
| Ctype_list_prepend< Initial< Inits... >, Elem > | Prepend a single type to a type list |
| Ctype_list_prepend< Initial< Inits... >, Prepender< Preps... > > | Specialization to prepend one type list to another |
| Ctype_list_reverse | Reverse the order of types in a type list |
| Ctype_list_reverse< T, U, Ts... > | Reverse a pack of types |
| Ctype_list_reverse< Tlist< T, U, Ts... > > | Reverse types in a templated type list |
| Ctype_list_split | Splits a type list into two sublists using index sequences |
| Ctype_list_split< T< Args... >, std::index_sequence< Is... >, std::index_sequence< Js... > > | Specialization of type_list_split for variadic type lists |
| Ctype_list_split_half | Splits a type list into two halves |
| Ctype_list_split_half< T< Args... > > | Specialization to split T<Args...> into two halves |
| Ctype_list_unique | Removes duplicate types from a parameter pack |
| Ctype_list_unique< T, Ts... > | |
| Ctype_list_unique<> |