using node_filter_function = std::function<bool(const UnfoldingEvent*)>;
using topological_order_position = std::vector<const UnfoldingEvent*>::const_iterator;
- maximal_subsets_iterator() = default;
+ maximal_subsets_iterator() = default;
+ maximal_subsets_iterator(maximal_subsets_iterator&&) noexcept = default;
explicit maximal_subsets_iterator(const Configuration& config,
std::optional<node_filter_function> filter = std::nullopt,
std::optional<size_t> maximum_subset_size = std::nullopt)
public:
using topological_order_position = maximal_subsets_iterator::topological_order_position;
+ bookkeeper() = default;
+ bookkeeper(bookkeeper&&) = default;
+ bookkeeper& operator=(bookkeeper&) = default;
+ bookkeeper& operator=(bookkeeper&&) = default;
+
void mark_included_in_maximal_set(const UnfoldingEvent*);
void mark_removed_from_maximal_set(const UnfoldingEvent*);
topological_order_position find_next_candidate_event(topological_order_position first,