Modules | Files | Inheritance Tree | Inheritance Graph | Name Index | Config
namespace Synopsis::Parser::C++::AST
class Include
Files: Synopsis/Parser/C++/syn/ast.hh
Include-inheritance Scopes/Synopsis/Parser/C++/FakeGC/cleanup.html

Information about an #include or #include_next directive. This object is a thin wrapper around the target SourceFile, with some attributes to indicate whether the directive included a macro expansion, and whether it was an #include_next or not.

A macro expansion is flagged because often you don't want to include those in an include graph. For example, some headers in the Boost PP library will include other files multiple times, where the file included is given by a macro. It is rare that you actually want to show this macro-dependent include in the documentation or in a graph.


Public Typedefs Summary:
std::vector<Include*>vector
A vector of Includes [Source]

Public Member functions Summary:
 constructorInclude(SourceFile* target, bool is_macro, bool is_next)
Constructor [Source]
 SourceFile*target()
Returns the target of this include [Source]
 boolis_macro()
Returns whether the include filename was a macro expansion [Source]
 boolis_next()
Returns whether the include was an #include_next directive [Source]

Private Data members Summary:
SourceFile*m_target
The target file of the include or include_next [Source]
boolm_is_macro
Whether the include filename was a macro expansion [Source]
boolm_is_next
Whether the include was an #include_next directive [Source]

Public Data members Inherited from FakeGC::cleanup
cleanup_next