class PreprocessingRecord::iterator
Declaration
class PreprocessingRecord::iterator : public iterator_adaptor_base { /* full declaration omitted */ };
Description
Iteration over the preprocessed entities. In a complete iteration, the iterator walks the range [-M, N), where negative values are used to indicate preprocessed entities loaded from the external source while non-negative values are used to indicate preprocessed entities introduced by the current preprocessor. 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.
Declared at: clang/include/clang/Lex/PreprocessingRecord.h:428
Inherits from: iterator_adaptor_base
Member Variables
- private clang::PreprocessingRecord* Self
Method Overview
Methods
¶iterator(clang::PreprocessingRecord* Self,
int Position)
iterator(clang::PreprocessingRecord* Self,
int Position)
Declared at: clang/include/clang/Lex/PreprocessingRecord.h:436
Parameters
- clang::PreprocessingRecord* Self
- int Position
¶iterator()
iterator()
Declared at: clang/include/clang/Lex/PreprocessingRecord.h:440