10 #include "core/adt/id.h"
28 class SetIterator :
public std::iterator<std::forward_iterator_tag, SetNode *> {
30 bool operator==(
const SetIterator &x)
const {
return it_ == x.it_; }
31 bool operator!=(
const SetIterator &x)
const {
return !operator==(x); }
45 SetNode *operator*()
const {
return *it_; }
52 std::vector<SetNode *>::iterator it)
61 while (it_ != graph_->sets_.end() && !*it_) {
70 std::vector<SetNode *>::iterator it_;
109 std::vector<SetNode *> sets_;
111 std::vector<DerefNode *> derefs_;
113 std::vector<RootNode *> roots_;
116 std::vector<std::unique_ptr<Node>> nodes_;
126 Entry(uint32_t parent, uint32_t rank) : Parent(parent), Rank(rank) {}
130 std::vector<Entry> unions_;