31 #ifndef GUM_OPERATOR_REGISTER_4_MULTI_DIM_H 32 #define GUM_OPERATOR_REGISTER_4_MULTI_DIM_H 42 template <
typename GUM_SCALAR >
43 class MultiDimImplementation;
58 template <
typename GUM_SCALAR >
64 const MultiDimImplementation< GUM_SCALAR >*);
96 void insert(
const std::string& operation_name,
97 const std::string& type1,
98 const std::string& type2,
118 void erase(
const std::string& operation_name,
119 const std::string& type1,
120 const std::string& type2);
139 bool exists(
const std::string& operation_name,
140 const std::string& type1,
141 const std::string& type2)
const;
165 const std::string& type1,
166 const std::string& type2)
const;
218 template <
typename GUM_SCALAR >
220 const std::string& operation_name,
221 const std::string& type1,
222 const std::string& type2,
HashTable< std::pair< std::string, std::string >, OperatorPtr > OperatorSet
The set of associations for a given operation type.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
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.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
OperatorRegister4MultiDim()
Default constructor: creates an empty register.
<agrum/multidim/multiDimImplementation.h>
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
~OperatorRegister4MultiDim()
Destructor.