48#ifndef DOXYGEN_SHOULD_SKIP_THIS
73 _nodes2vars_(std::move(source._nodes2vars_)), _names2nodes_(std::move(source._names2nodes_)) {
74 GUM_CONS_MOV(VariableNodeMap);
78 VariableNodeMap::~VariableNodeMap() {
79 GUM_DESTRUCTOR(VariableNodeMap);
85 VariableNodeMap& VariableNodeMap::operator=(
const VariableNodeMap& source) {
88 GUM_OP_CPY(VariableNodeMap);
94 VariableNodeMap& VariableNodeMap::operator=(VariableNodeMap&& source) {
95 if (
this != &source) {
97 _nodes2vars_ = std::move(source._nodes2vars_);
98 _names2nodes_ = std::move(source._names2nodes_);
99 GUM_OP_MOV(VariableNodeMap);
104 void VariableNodeMap::clear() {
105 for (
auto iter = _nodes2vars_.begin(); iter != _nodes2vars_.end(); ++iter)
106 delete iter.second();
108 _nodes2vars_.clear();
109 _names2nodes_.clear();
113 std::string VariableNodeMap::toString()
const {
114 std::stringstream stream;
116 stream <<
"list of associations:\n";
117 stream << _nodes2vars_ <<
"\n\n";
118 stream <<
"list of variable names:\n";
119 stream << _names2nodes_ <<
'\n';
125 void VariableNodeMap::_copy_(
const VariableNodeMap& source) {
126 for (
auto iter = source._nodes2vars_.begin(); iter != source._nodes2vars_.end(); ++iter)
127 _nodes2vars_.insert(iter.first(), iter.second()->clone());
131 _names2nodes_ = source._names2nodes_;
135 std::ostream&
operator<<(std::ostream& stream,
const VariableNodeMap& v) {
136 stream << v.toString();
Container used to map discrete variables with nodes.
void _copy_(const VariableNodeMap &source)
effectively do the copy (for copy constructor or operator=)
VariableNodeMap()
Default constructor.
gum is the global namespace for all aGrUM entities
std::ostream & operator<<(std::ostream &out, const TiXmlNode &base)
Header of class VariableNodeMap.
Inlined implementation of VariableNodeMap.