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.