28 #ifndef GUM_OPERATOR_PATTERN_ALLOWED 37 # ifdef GUM_MULTI_DIM_OPERATOR_NAME 38 template <
typename T >
39 MultiDimImplementation< T >*
40 GUM_MULTI_DIM_OPERATOR_NAME(
const MultiDimImplementation< T >& impl1,
41 const MultiDimImplementation< T >& impl2) {
45 bool swapped_names =
false;
51 GUM_MULTI_DIM_OPERATOR_FUNC_NAME, impl1.name(), impl2.name());
54 # ifdef GUM_MULTI_DIM_SYMMETRIC_OPERATOR 63 GUM_MULTI_DIM_OPERATOR_FUNC_NAME, impl2.name(), impl1.name());
69 GUM_MULTI_DIM_OPERATOR_FUNC_NAME, impl1.basename(), impl2.basename());
71 # ifdef GUM_MULTI_DIM_SYMMETRIC_OPERATOR 79 return func(&impl2, &impl1);
81 return func(&impl1, &impl2);
gum is the global namespace for all aGrUM entities
static OperatorRegister4MultiDim< GUM_SCALAR > & Register()
A named constructor that constructs one and only one Register per data type.
MultiDimImplementation< GUM_SCALAR > *(* OperatorPtr)(const MultiDimImplementation< GUM_SCALAR > *, const MultiDimImplementation< GUM_SCALAR > *)
The type of functions used by the register.