Lines Matching defs:iterator
113 class iterator;
114 inline iterator begin() const;
115 inline iterator end() const;
380 class iterator;
381 inline iterator begin() const;
382 inline iterator end() const;
445 friend class Node::UseEdges::iterator;
447 friend class Node::InputEdges::iterator;
486 // A forward iterator to visit the edges for the input dependencies of a node.
487 class Node::InputEdges::iterator final {
495 iterator() : use_(nullptr), input_ptr_(nullptr) {}
496 iterator(const iterator& other) = default;
499 bool operator==(const iterator& other) const {
502 bool operator!=(const iterator& other) const { return !(*this == other); }
503 iterator& operator++() {
508 iterator operator++(int);
509 iterator& operator+=(difference_type offset) {
514 iterator operator+(difference_type offset) const {
515 return iterator(use_ - offset, input_ptr_ + offset);
517 difference_type operator-(const iterator& other) const {
524 explicit iterator(Use* use, ZoneNodePtr* input_ptr)
532 Node::InputEdges::iterator Node::InputEdges::begin() const {
533 return Node::InputEdges::iterator(use_root_, input_root_);
537 Node::InputEdges::iterator Node::InputEdges::end() const {
538 return Node::InputEdges::iterator(use_root_ - count_, input_root_ + count_);
545 // A forward iterator to visit the inputs of a node.
600 // A forward iterator to visit the uses edges of a node.
601 class Node::UseEdges::iterator final {
603 iterator(const iterator& other) = default;
606 bool operator==(const iterator& other) const {
609 bool operator!=(const iterator& other) const { return !(*this == other); }
610 iterator& operator++() {
616 iterator operator++(int);
621 iterator() : current_(nullptr), next_(nullptr) {}
622 explicit iterator(Node* node)
631 Node::UseEdges::iterator Node::UseEdges::begin() const {
632 return Node::UseEdges::iterator(this->node_);
636 Node::UseEdges::iterator Node::UseEdges::end() const {
637 return Node::UseEdges::iterator();
641 // A forward iterator to visit the uses of a node.