This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 118c. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2025-10-11


3074. Redundant ill-formedness for module macros

Section: 15.5  [cpp.module]     Status: tentatively ready     Submitter: Hubert Tong     Date: 2025-09-21

(From submission #766.)

Macro definitions for keywords are prohibited by 15.7.1 [cpp.replace.general] paragraph 9. More limited restrictions in 15.5 [cpp.module] paragraph 1 and 15.6 [cpp.import] paragraph 1 are redundant.

Proposed resolution (approved by CWG 2025-09-26):

  1. Remove 15.5 [cpp.module] paragraph 1:

    A pp-module shall not appear in a context where module or (if it is the first preprocessing token of the pp-module) export is an identifier defined as an object-like macro.
  2. Remove 15.6 [cpp.import] paragraph 1:

    A pp-import shall not appear in a context where import or (if it is the first preprocessing token of the pp-import) export is an identifier defined as an object-like macro.