- if (elem.enabled_element_set_hook.is_linked()) {
- auto& set = elem.constraint->enabled_element_set;
- set.erase(set.iterator_to(elem));
- }
- if (elem.disabled_element_set_hook.is_linked()) {
- auto& set = elem.constraint->disabled_element_set;
- set.erase(set.iterator_to(elem));
- }
- if (elem.active_element_set_hook.is_linked()) {
- auto& set = elem.constraint->active_element_set;
- set.erase(set.iterator_to(elem));
- }
- int nelements = elem.constraint->enabled_element_set.size() + elem.constraint->disabled_element_set.size();
+ if (elem.enabled_element_set_hook.is_linked())
+ simgrid::xbt::intrusive_erase(elem.constraint->enabled_element_set_, elem);
+ if (elem.disabled_element_set_hook.is_linked())
+ simgrid::xbt::intrusive_erase(elem.constraint->disabled_element_set_, elem);
+ if (elem.active_element_set_hook.is_linked())
+ simgrid::xbt::intrusive_erase(elem.constraint->active_element_set_, elem);
+ int nelements = elem.constraint->enabled_element_set_.size() + elem.constraint->disabled_element_set_.size();