Utility module
Template metaprogramming utilities and type manipulation tools.
The Utility module provides a comprehensive set of template metaprogramming utilities for type manipulation, parameter pack handling, and compile-time computations used throughout the Rodin finite element library.
Classes
- 
              template<class ...>struct Rodin::Utility::Extract
 - Template metafunction for extracting types from tuple structures.
 - 
              template<class T, class ... Ts>struct Rodin::Utility::Extract<Tuple<T, Ts...>>
 - Specialization of Extract for Tuple types.
 - 
              template<class T>struct Rodin::Utility::Make
 - Factory template for perfect forwarding construction.
 - 
              template<class... Ts>struct Rodin::Utility::Overloaded
 - Helper type for creating overloaded function objects from lambdas.
 - 
              template<std::size_t N, class ... Types>struct Rodin::Utility::Internal::AtImpl
 - Internal implementation for accessing parameter pack elements by index.
 - 
              template<class First, class ... Rest>struct Rodin::Utility::Internal::AtImpl<0, First, Rest...>
 - Base case specialization for index 0.
 - 
              template<std::size_t N, class First, class ... Rest>struct Rodin::Utility::Internal::AtImpl<N, First, Rest...>
 - Recursive case for index N > 0.
 - 
              template<template<class> class Predicate, class ...>struct Rodin::Utility::Internal::AllImpl
 - Internal implementation for checking if all types satisfy a predicate.
 - 
              template<template<class> class Predicate, class T1>struct Rodin::Utility::Internal::AllImpl<Predicate, T1>
 - Base case for a single type.
 - 
              template<template<class> class Predicate, class T1, class T2, class ... Ts>struct Rodin::Utility::Internal::AllImpl<Predicate, T1, T2, Ts...>
 - Recursive case for multiple types.
 - 
              template<class ... Params>class Rodin::Utility::ParameterPack
 - Template metaprogramming utilities for parameter packs.
 
Functions
- 
              template<class... Ts>Overloaded(Ts...) -> Overloaded< Ts... >
 - Deduction guide for Overloaded.
 
Function documentation
              
                template<class... Ts>
              
               Overloaded(Ts...) -> Overloaded< Ts... >
            
            Deduction guide for Overloaded.
| Template parameters | |
|---|---|
| Ts | The types of the callable objects. | 
This deduction guide allows the compiler to automatically deduce the template parameters when constructing an Overloaded object from a set of callable objects.