Traverses the macro directives history and returns the next macro definition directive along with info about its undefined location (if there is one) and if it is public or private.
[MacroDirective](classclang%5F1%5F1MacroDirective.html "Encapsulates changes to the "macros namespace" (the location where the macro name became active,...") kind.
Whether the macro has public visibility (when described in a module).
Encapsulates changes to the "macros namespace" (the location where the macro name became active, the location where it was undefined, etc.).
MacroDirectives, associated with an identifier, are used to model the macro history. Usually a macro definition (MacroInfo) is where a macro name becomes active ([MacroDirective](classclang%5F1%5F1MacroDirective.html "Encapsulates changes to the "macros namespace" (the location where the macro name became active,...")) but #pragma push_macro / pop_macro can create additional DefMacroDirectives for the same MacroInfo.