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.