From Jason Turner

[cpp.include]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpagra5tbi/{from.md → to.md} +13 -4
tmp/tmpagra5tbi/{from.md → to.md} RENAMED
@@ -49,19 +49,28 @@ two previous forms, the behavior is undefined.[^4] The method by which a
49
  sequence of preprocessing tokens between a `<` and a `>` preprocessing
50
  token pair or a pair of `"` characters is combined into a single header
51
  name preprocessing token is *implementation-defined*.
52
 
53
  The implementation shall provide unique mappings for sequences
54
- consisting of one or more *nondigit*s or *digit*s ([[lex.name]])
55
- followed by a period (`.`) and a single *nondigit*. The first character
56
- shall not be a *digit*. The implementation may ignore distinctions of
57
- alphabetical case.
58
 
59
  A `#include` preprocessing directive may appear in a source file that
60
  has been read because of a `#include` directive in another file, up to
61
  an *implementation-defined* nesting limit.
62
 
 
 
 
 
 
 
 
 
 
63
  [*Note 1*:
64
 
65
  Although an implementation may provide a mechanism for making arbitrary
66
  source files available to the `< >` search, in general programmers
67
  should use the `< >` form for headers provided with the implementation,
 
49
  sequence of preprocessing tokens between a `<` and a `>` preprocessing
50
  token pair or a pair of `"` characters is combined into a single header
51
  name preprocessing token is *implementation-defined*.
52
 
53
  The implementation shall provide unique mappings for sequences
54
+ consisting of one or more *nondigit*s or *digit*s [[lex.name]] followed
55
+ by a period (`.`) and a single *nondigit*. The first character shall not
56
+ be a *digit*. The implementation may ignore distinctions of alphabetical
57
+ case.
58
 
59
  A `#include` preprocessing directive may appear in a source file that
60
  has been read because of a `#include` directive in another file, up to
61
  an *implementation-defined* nesting limit.
62
 
63
+ If the header identified by the *header-name* denotes an importable
64
+ header [[module.import]], it is *implementation-defined* whether the
65
+ `#include` preprocessing directive is instead replaced by an `import`
66
+ directive [[cpp.import]] of the form
67
+
68
+ ``` bnf
69
+ 'import' header-name ';' new-line
70
+ ```
71
+
72
  [*Note 1*:
73
 
74
  Although an implementation may provide a mechanism for making arbitrary
75
  source files available to the `< >` search, in general programmers
76
  should use the `< >` form for headers provided with the implementation,