P0713R1, 2018-02-08
EWG, CWG
Daveed Vandevoorde (daveed@edg.com)
P0713R0 argued for requiring a leading syntactic marker to distinguish
module units from traditional translation units that are not module
units. Discussion in Toronto concluded with a vote that supported that
direction (strongly favor: 3, favor: 18, neutral: 14, against: 3, strongly
against: 0) after the publication of the modules TS (now N4720).
This paper proposes wording specifically for implementing the leading marker
as the strawman proposal in P0713R0:
module;
...
export module X;
...
Change the definition of translation-unit in paragraph 6.5/1 [basic.link] to:
translation-unit:
declaration-seqopt
module-unitopt
module-unit:
single-module-unit
mixed-module-unit
single-module-unit:
module-declaration declaration-seqopt
mixed-module-unit:
module ; declaration-seqopt single-module-unit
and remove the definitions of toplevel-declaration-seq and toplevel-declaration.
In [dcl.module.unit] 10.7.1 paragraph 1, delete one sentence as follows: