15 Preprocessing directives [cpp]

15.4 Module directive [cpp.module]

pp-module:
export module pp-tokens ; new-line
A pp-module shall not appear in a context where module or (if it is the first token of the pp-module) export is an identifier defined as an object-like macro.
The pp-tokens, if any, of a pp-module shall be of the form: where the pp-tokens (if any) shall not begin with a ( preprocessing token and the grammar non-terminals are defined as: No identifier in the pp-module-name or pp-module-partition shall currently be defined as an object-like macro.
Any preprocessing tokens after the module preprocessing token in the module directive are processed just as in normal text.
[Note 1: 
Each identifier currently defined as a macro name is replaced by its replacement list of preprocessing tokens.
— end note]
The module and export (if it exists) preprocessing tokens are replaced by the module-keyword and export-keyword preprocessing tokens respectively.
[Note 2: 
This makes the line no longer a directive so it is not removed at the end of phase 4.
— end note]