On Fri, 14 Jun 2019, 22:21 Matthew Woehlke via Std-Proposals, <std-proposals@lists.isocpp.org> wrote:
Basically, I don't see any non-modules way for the compiler
to "forget" things at include boundaries, and *with* modules, well,
things already work the way you want. This was, in fact, one of the
primary motivations for modules.

There is one option: Statements that reverse the behaviour of "using". I mean, we already have to manually use statements to prevent multiple processing of header files (include guards) as far as the standard is concerned, so being able to undo a using statement at the end of a file might be one easier short term option.

Its a bit gross and hacky, but it just might work, especially on existing projects where modules may be too big a leap for the short term.