Index: llvm/include/llvm/ADT/iterator.h =================================================================== --- llvm/include/llvm/ADT/iterator.h +++ llvm/include/llvm/ADT/iterator.h @@ -33,6 +33,26 @@ /// Another abstraction that this doesn't provide is implementing increment in /// terms of addition of one. These aren't equivalent for all iterator /// categories, and respecting that adds a lot of complexity for little gain. +/// +/// Classes wishing to use `iterator_facade_base` should implement the following +/// methods: +/// +/// Forward Iterators: +/// DerivedT &operator=(const DerivedT &R); +/// bool operator==(const DerivedT &R) const; +/// const T &operator*() const; +/// T &operator*(); +/// DerivedT &operator+=(DifferenceTypeT N); +/// +/// Bidirectional Iterators: +/// (All methods of forward iterators, plus the following) +/// DerivedT &operator-=(DifferenceTypeT N); +/// +/// Random-access Iterators: +/// (All methods of bidirectional iterators, plus the following) +/// bool operator<(const DerivedT &RHS) const; +/// DifferenceTypeT operator-(const DerivedT &R) const; +/// template