This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 112e. See for the official list.


2727. Importing header units synthesized from source files

Section: 10.3  [module.import]     Status: open     Submitter: Jim X     Date: 2023-05-04

Subclause 10.3 [module.import] paragraph 5 specifies:

A module-import-declaration that specifies a header-name H imports a synthesized header unit, which is a translation unit formed by applying phases 1 to 7 of translation (5.2 [lex.phases]) to the source file or header nominated by H, which shall not contain a module-declaration. ... An importable header is a member of an implementation-defined set of headers that includes all importable C++ library headers ( [headers]). H shall identify an importable header. ...

This text seems to recognize that header units may be synthesized from non-headers (i.e. source files), yet a module-import-declaration of the form import header-name is required to name an (importable) header, not an arbitrary source file turned into header unit.

Possible resolution:

Change in 10.3 [module.import] paragraph 5 as follows:

H shall identify an importable header. If H nominates a header, that header shall be an importable header.