AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
Recursive helper struct for enumerating permutations of a list of types. More...
#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/v0.5.0/src/axom/inlet/Function.hpp>
Static Public Member Functions | |
template<typename... Ts, typename... Us> | |
static auto | get (TypeList< Ts... > t, TypeList< Us... > u) -> decltype(permutation_helper< N - 1 >::get(t, type_list_cat(typename multi_list_prepend< Ts, Us... >::type()...))) |
Recursive helper struct for enumerating permutations of a list of types.
N | The zero-indexed length of the permutations to produce ("stack height") |
Ts... | The original (1-dimensional) set of types to permute, e.g. <A, B, C> |
Us... | The current "result" list of lists, each member U in Us will be a list whose size is the original requested permutation length minus the current stack height N |
The Us pack is expanded in the multi_list_prepend "call" whereas the Ts pack is expanded as part of the type_list_cat "call"
The Python-like pseudocode for this function is roughly:
|
static |