33 ValueNode::operator+=(
const ValueNode& node)
35 return CheckNodes().insert(node).second;
38 ValueNode::operator+=(ValueNode&& node)
41 return CheckNodes().insert(std::move(node)).second;
45 ValueNode::operator-=(
const ValueNode& node)
47 const auto p_con(GetContainerPtr());
49 return p_con ? p_con->erase({0, node.name}) != 0 :
false;
53 ValueNode::operator[](
const string& name)
const
55 auto& cont(CheckNodes());
56 auto i(cont.lower_bound({0, name}));
58 if(i == cont.end() || cont.key_comp()({0, name}, *i))
60 i = cont.insert(i, {0, name});
65 ValueNode::GetNode(
const string& name)
const
72 const auto p_con(GetContainerPtr());
74 return p_con ? p_con->size() : 0;
78 ValueNode::CheckNodes()
const
82 return GetContainer();
87 AccessNode(
const ValueNode::Container& con,
const string& name)