63 constexpr void setDefault(PropagationCriteria prop_criteria)
65 default_prop_criteria_ = prop_criteria;
68 void set(SemanticRange range, PropagationCriteria prop_criteria)
70 prop_criteria_.insert_or_assign(range, prop_criteria);
73 template <
class InputIt>
74 void set(InputIt first, InputIt last, PropagationCriteria prop_criteria)
76 std::for_each(first, last, [
this, prop_criteria](
auto r) { set(r, prop_criteria); });
79 void erase(SemanticRange range) { prop_criteria_.erase(range); }
81 template <
class InputIt>
82 void erase(InputIt first, InputIt last)
84 std::for_each(first, last, [
this](
auto e) { erase(e); });
87 void clear() { prop_criteria_.clear(); }
89 [[nodiscard]]
bool empty()
const {
return prop_criteria_.empty(); }
91 [[nodiscard]]
constexpr PropagationCriteria defaultPropCriteria()
const noexcept
93 return default_prop_criteria_;
96 [[nodiscard]] PropagationCriteria propCriteria(label_t label)
const
98 auto it = prop_criteria_.find(label);
99 return prop_criteria_.end() == it ? defaultPropCriteria() : it->second;
103 PropagationCriteria default_prop_criteria_;