49#ifndef GUM_PARTIAL_INSTANTIATION_REGISTER_4_MULTI_DIM_H
50#define GUM_PARTIAL_INSTANTIATION_REGISTER_4_MULTI_DIM_H
62 template <
typename GUM_SCALAR >
86 template <
typename GUM_SCALAR >
122 void insert(
const std::string& instantiation_func_name,
123 const std::string& type_multidim,
138 void erase(
const std::string& instantiation_func_name,
const std::string& type_multidim);
153 bool exists(
const std::string& instantiation_func_name,
const std::string& type_multidim)
const;
172 const std::string& type_multidim)
const;
230 template <
typename GUM_SCALAR >
232 const std::string& instantiation_func_name,
233 const std::string& type_multidim,
Base class for discrete random variable.
The class for generic Hash Tables.
<agrum/base/multidim/multiDimImplementation.h>
bool exists(const std::string &instantiation_func_name, const std::string &type_multidim) const
Indicates whether a given entry exists in the register.
static PartialInstantiationRegister4MultiDim & Register()
A named constructor that constructs one and only one Register per data type.
~PartialInstantiationRegister4MultiDim()
Class destructor.
PartialInstantiationRegister4MultiDim()
Default constructor: creates an empty register.
void erase(const std::string &instantiation_func_name, const std::string &type_multidim)
Removes a given entry from the register.
void insert(const std::string &instantiation_func_name, const std::string &type_multidim, PartialInstantiationPtr newFunction)
Adds a new entry into the register.
MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > *, const HashTable< const DiscreteVariable *, Idx > &) PartialInstantiationPtr
The type of functions used by the register.
PartialInstantiationPtr get(const std::string &instantiation_func_name, const std::string &type_multidim) const
Returns the specialized partial instantiation operator assigned to a given type of MultiDimImplementa...
HashTable< std::string, PartialInstantiationSet * > _set_
A mapping from the types of MultiDimImplementations to partial instantiation operators.
HashTable< std::string, PartialInstantiationPtr > PartialInstantiationSet
The set of associations for a given partial instantiation type.
Base class for discrete random variable.
Size Idx
Type for indexes.
gum is the global namespace for all aGrUM entities
void registerPartialInstantiation(const std::string &instantiation_func_name, const std::string &type_multidim, typename PartialInstantiationRegister4MultiDim< GUM_SCALAR >::PartialInstantiationPtr function)
A function to more easily register new instantiation functions in MultiDims.
Implementation of PartialInstantiationRegister4MultiDim.