30 #ifndef GUM_OPERATOR_PATTERN_ALLOWED 39 # ifdef GUM_MULTI_DIM_OPERATOR_NAME 40 template <
typename T >
41 MultiDimImplementation< T >*
42 GUM_MULTI_DIM_OPERATOR_NAME(
const MultiDimImplementation< T >& impl1,
43 const MultiDimImplementation< T >& impl2) {
46 typename OperatorRegister4MultiDim< T >::OperatorPtr func;
47 bool swapped_names =
false;
52 func = OperatorRegister4MultiDim< T >::Register().get(GUM_MULTI_DIM_OPERATOR_FUNC_NAME,
57 # ifdef GUM_MULTI_DIM_SYMMETRIC_OPERATOR 65 func = OperatorRegister4MultiDim< T >::Register().get(GUM_MULTI_DIM_OPERATOR_FUNC_NAME,
72 func = OperatorRegister4MultiDim< T >::Register().get(GUM_MULTI_DIM_OPERATOR_FUNC_NAME,
76 # ifdef GUM_MULTI_DIM_SYMMETRIC_OPERATOR 84 return func(&impl2, &impl1);
86 return func(&impl1, &impl2);