28 #ifndef GUM_OPERATOR_REGISTER_4_MULTI_DIM_H 29 #define GUM_OPERATOR_REGISTER_4_MULTI_DIM_H 39 template <
typename GUM_SCALAR >
40 class MultiDimImplementation;
55 template <
typename GUM_SCALAR >
61 const MultiDimImplementation< GUM_SCALAR >*);
93 void insert(
const std::string& operation_name,
94 const std::string& type1,
95 const std::string& type2,
115 void erase(
const std::string& operation_name,
116 const std::string& type1,
117 const std::string& type2);
136 bool exists(
const std::string& operation_name,
137 const std::string& type1,
138 const std::string& type2)
const;
162 const std::string& type1,
163 const std::string& type2)
const;
215 template <
typename GUM_SCALAR >
217 const std::string& operation_name,
218 const std::string& type1,
219 const std::string& type2,
HashTable< std::pair< std::string, std::string >, OperatorPtr > OperatorSet
The set of associations for a given operation type.
gum is the global namespace for all aGrUM entities
The class for generic Hash Tables.
void registerOperator(const std::string &operation_name, const std::string &type1, const std::string &type2, typename OperatorRegister4MultiDim< GUM_SCALAR >::OperatorPtr function)
A function to more easily register new operators in MultiDims.
A container for registering binary functions on multiDimImplementations.
HashTable< std::string, OperatorSet *> __set
A mapping from pairs of types of MultiDimImplementations to operators.
bool exists(const std::string &operation_name, const std::string &type1, const std::string &type2) const
Indicates whether a given entry exists in the register.
void erase(const std::string &operation_name, const std::string &type1, const std::string &type2)
removes a given entry from the register
void insert(const std::string &operation_name, const std::string &type1, const std::string &type2, OperatorPtr newFunction)
adds a new entry into the register
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.
A container for registering binary functions on multiDimImplementations.
OperatorRegister4MultiDim()
Default constructor: creates an empty register.
<agrum/multidim/multiDimImplementation.h>
Class hash tables iterators.
~OperatorRegister4MultiDim()
Destructor.