Rodin::Utility namespace

Module containing general purpose and language support utility classes.

Classes

template<class ...>
struct Extract
Template metafunction for extracting types from tuple structures.
template<class T, class ... Ts>
struct Extract<Tuple<T, Ts...>>
Specialization of Extract for Tuple types.
template<class T>
struct Make
Factory template for perfect forwarding construction.
template<class... Ts>
struct Overloaded
Helper type for creating overloaded function objects from lambdas.
template<class ... Params>
class ParameterPack
Template metaprogramming utilities for parameter packs.
template<class ...>
struct Product
Metafunction to compute the Cartesian product of two Tuple type-lists.
template<class H, class ... Gs>
struct Product<Tuple<H>, Tuple<Gs...>>
Tuple has exactly one element.
template<class H1, class H2, class ... Hs, class ... Gs>
struct Product<Tuple<H1, H2, Hs...>, Tuple<Gs...>>
Tuple has at least two elements (H1, H2, Hs…).