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: