|
capydi
|
Compile-time type pack utilities and metaprogramming foundations. More...
#include <tuple>

Go to the source code of this file.
Classes | |
| class | capy::meta::Unit< UnitType > |
| A zero-cost wrapper for forwarding compile-time type information. More... | |
| class | capy::meta::Pack< Types > |
| A compile-time heterogeneous type list. More... | |
| class | capy::meta::ValueUnit< Value > |
| A wrapper for non-type template parameter values. More... | |
| struct | capy::meta::UnwrapValueUnit< ValueUnit< Value > > |
| Specialization that extracts the stored value from ValueUnit<Value>. More... | |
| class | capy::meta::UnaryMetaFunction< typename > |
| A tag for template template parameters representing unary predicates. More... | |
| struct | capy::meta::RebindPack< Pack< Elements... >, Template > |
| Specialization: extract elements from Pack<Elements...> and apply Template. More... | |
Namespaces | |
| namespace | capy |
| namespace | capy::meta |
Typedefs | |
| template<typename Unit_> | |
| using | capy::meta::unit_inner_type_t = typename Unit_::InnerType |
| using | capy::meta::EmptyPack = Pack<> |
| The empty type pack; useful as a base case for recursive operations. | |
| template<typename Pack_, template< typename... > typename Template> | |
| using | capy::meta::rebind_pack_t = typename RebindPack<Pack_, Template>::type |
| Convenience alias for RebindPack. | |
Variables | |
| template<typename Pack_> | |
| constexpr std::size_t | capy::meta::pack_size_v |
| template<typename Pack_> | |
| constexpr bool | capy::meta::pack_is_empty_v = pack_size_v<Pack_> == 0 |
Compile-time type pack utilities and metaprogramming foundations.
This header provides the fundamental type manipulation utilities used throughout Capydi for compile-time introspection, filtering, and rebinding. All operations are performed at compile time with zero runtime overhead.
Key abstractions:
Pack: A compile-time type listUnit: A wrapper for forwarding type information without instantiationValueUnit: A wrapper for non-type template parameters (e.g., integers, bools)UnaryMetaFunction: A tag for template template parameters