|
clang 24.0.0git
|
Iteration over the elements in the vector. More...
#include "clang/Sema/ExternalSemaSource.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 281 of file ExternalSemaSource.h.
|
inline |
Definition at line 294 of file ExternalSemaSource.h.
References clang::nullptr.
|
inline |
Definition at line 296 of file ExternalSemaSource.h.
|
friend |
Definition at line 284 of file ExternalSemaSource.h.
References LazyVector.
Referenced by LazyVector.