clang 20.0.0git
|
Iteration over the elements in the vector. More...
#include "clang/AST/ExternalASTSource.h"
Public Member Functions | |
iterator () | |
iterator::reference | operator* () const |
Friends | |
class | LazyVector |
Iteration over the elements in the vector.
In a complete iteration, the iterator walks the range [-M, N), where negative values are used to indicate elements loaded from the external source while non-negative values are used to indicate elements added via push_back()
. However, to provide iteration in source order (for, e.g., chained precompiled headers), dereferencing the iterator flips the negative values (corresponding to loaded entities), so that position -M corresponds to element 0 in the loaded entities vector, position -M+1 corresponds to element 1 in the loaded entities vector, etc. This gives us a reasonably efficient, source-order walk.
We define this as a wrapping iterator around an int. The iterator_adaptor_base class forwards the iterator methods to basic integer arithmetic.
Definition at line 522 of file ExternalASTSource.h.
|
inline |
Definition at line 535 of file ExternalASTSource.h.
|
inline |
Definition at line 537 of file ExternalASTSource.h.
|
friend |
Definition at line 525 of file ExternalASTSource.h.