GEOS
|
Namespace containing type dispatching facilities. More...
Typedefs | |
template<integer Begin, integer End> | |
using | IntegerSequence = internal::Increment< camp::make_idx_seq_t< End - Begin+1 >, Begin > |
Generate a sequence of integers from Begin up to (and including) End . | |
template<typename ... Ts> | |
using | TypeList = camp::list< Ts... > |
Construct a list of types. | |
template<typename LIST > | |
using | ListofTypeList = internal::Apply< camp::list, LIST > |
Construct a list of list type. | |
template<typename ... Ls> | |
using | Join = typename camp::join< Ls ... >::type |
Concatenate multiple type lists. | |
template<typename TYPES , typename NDIMS > | |
using | ArrayTypes = internal::Apply< internal::ArrayType, camp::cartesian_product< TYPES, internal::AddLayouts< NDIMS > > > |
Construct a list of GEOSX multidimensional array types (geos::Array), containing all value types in type list TYPES and all dimensionalities in list of integral constants NDIMS . | |
using | IntegralTypes = TypeList< integer, localIndex, globalIndex > |
List of major integral types used in GEOSX type system. | |
using | RealTypes = TypeList< real32, real64 > |
List of major real-valued (floating point) types used in GEOSX type system. | |
template<int M, int N> | |
using | DimsRange = camp::as_list< IntegerSequence< M, N > > |
Generate a list of types representing array dimensionalities from M up to (and including) N . | |
template<int N> | |
using | DimsSingle = DimsRange< N, N > |
Generate a list of types representing array dimensionality exactly N . | |
template<int N> | |
using | DimsUpTo = DimsRange< 1, N > |
Generate a list of types representing array dimensionalities up to (and including) N . | |
using | RealArrays = ArrayTypes< RealTypes, DimsUpTo< 4 > > |
List of real-valued array types typically used in GEOSX (dimensions up to 4). | |
using | IntegralArrays = ArrayTypes< IntegralTypes, DimsUpTo< 2 > > |
List of integer-valued array types typically used in GEOSX (dimensions 1 and 2). | |
using | StandardArrays = Join< RealArrays, IntegralArrays > |
List of all array types (real- and integer-valued) typically used in GEOSX. | |
Functions | |
template<typename LIST , typename LAMBDA , typename ... Ts> | |
bool | dispatch (LIST const combinations, LAMBDA &&lambda, Ts &&... objects) |
Dispatch a generic worker function lambda based on runtime type. More... | |
Namespace containing type dispatching facilities.
bool geos::types::dispatch | ( | LIST const | combinations, |
LAMBDA && | lambda, | ||
Ts &&... | objects | ||
) |
Dispatch a generic worker function lambda
based on runtime type.
LIST | type of the list of types |
LAMBDA | type of user-provided function or lambda, must have one auto argument |
Ts | types of the objects to be dispatched. |
combinations | list of types |
lambda | lambda user-provided callable |
objects | objects to be dispatched |
true
iff type has been dispatchtodo Do we want errorIfTypeNotFound parameter? Options:
Definition at line 368 of file TypeDispatch.hpp.