From Jason Turner

[lex.ext]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpcv4zq9c1/{from.md → to.md} +28 -11
tmp/tmpcv4zq9c1/{from.md → to.md} RENAMED
@@ -120,11 +120,11 @@ where *f* is the source character sequence c₁c₂...cₖ.
120
  basic character set. — *end note*]
121
 
122
  If *L* is a *user-defined-string-literal*, let *str* be the literal
123
  without its *ud-suffix* and let *len* be the number of code units in
124
  *str* (i.e., its length excluding the terminating null character). If
125
- *S* contains a literal operator template with a non-type template
126
  parameter for which *str* is a well-formed *template-argument*, the
127
  literal *L* is treated as a call of the form
128
 
129
  ``` cpp
130
  operator ""X<str>()
@@ -187,26 +187,37 @@ int main() {
187
  [basic.fundamental]: basic.md#basic.fundamental
188
  [basic.link]: basic.md#basic.link
189
  [basic.lookup.unqual]: basic.md#basic.lookup.unqual
190
  [basic.stc]: basic.md#basic.stc
191
  [character.seq]: library.md#character.seq
 
192
  [conv.mem]: expr.md#conv.mem
193
  [conv.ptr]: expr.md#conv.ptr
194
  [cpp]: cpp.md#cpp
195
  [cpp.cond]: cpp.md#cpp.cond
 
196
  [cpp.import]: cpp.md#cpp.import
197
  [cpp.include]: cpp.md#cpp.include
198
  [cpp.module]: cpp.md#cpp.module
 
 
 
 
 
199
  [cpp.stringize]: cpp.md#cpp.stringize
200
  [dcl.attr.grammar]: dcl.md#dcl.attr.grammar
 
 
201
  [expr.prim.literal]: expr.md#expr.prim.literal
202
  [headers]: library.md#headers
 
203
  [lex]: #lex
204
  [lex.bool]: #lex.bool
205
  [lex.ccon]: #lex.ccon
206
  [lex.ccon.esc]: #lex.ccon.esc
207
  [lex.ccon.literal]: #lex.ccon.literal
 
208
  [lex.charset]: #lex.charset
209
  [lex.charset.basic]: #lex.charset.basic
210
  [lex.charset.literal]: #lex.charset.literal
211
  [lex.comment]: #lex.comment
212
  [lex.digraph]: #lex.digraph
@@ -230,50 +241,56 @@ int main() {
230
  [lex.pptoken]: #lex.pptoken
231
  [lex.separate]: #lex.separate
232
  [lex.string]: #lex.string
233
  [lex.string.concat]: #lex.string.concat
234
  [lex.string.literal]: #lex.string.literal
 
235
  [lex.token]: #lex.token
 
236
  [module.import]: module.md#module.import
 
237
  [module.unit]: module.md#module.unit
238
  [over.literal]: over.md#over.literal
239
  [support.types.layout]: support.md#support.types.layout
240
  [temp.explicit]: temp.md#temp.explicit
 
241
  [temp.names]: temp.md#temp.names
 
 
242
 
243
  [^1]: Implementations behave as if these separate phases occur, although
244
  in practice different phases can be folded together.
245
 
246
- [^2]: A partial preprocessing token would arise from a source file
 
 
 
 
 
247
  ending in the first portion of a multi-character token that requires
248
  a terminating sequence of characters, such as a *header-name* that
249
  is missing the closing `"` or `>`. A partial comment would arise
250
  from a source file ending with an unclosed `/*` comment.
251
 
252
- [^3]: These include “digraphs” and additional reserved words. The term
253
  “digraph” (token consisting of two characters) is not perfectly
254
  descriptive, since one of the alternative *preprocessing-token*s is
255
  `%:%:` and of course several primary tokens contain two characters.
256
  Nonetheless, those alternative tokens that aren’t lexical keywords
257
  are colloquially known as “digraphs”.
258
 
259
- [^4]: Thus the “stringized” values [[cpp.stringize]] of `[` and `<:`
260
  will be different, maintaining the source spelling, but the tokens
261
  can otherwise be freely interchanged.
262
 
263
- [^5]: Literals include strings and character and numeric literals.
264
-
265
- [^6]: Thus, a sequence of characters that resembles an escape sequence
266
- can result in an error, be interpreted as the character
267
- corresponding to the escape sequence, or have a completely different
268
- meaning, depending on the implementation.
269
 
270
  [^7]: On systems in which linkers cannot accept extended characters, an
271
  encoding of the \*universal-character-name\* can be used in forming
272
  valid external identifiers. For example, some otherwise unused
273
  character or sequence of characters can be used to encode the `̆` in
274
  a \*universal-character-name\*. Extended characters can produce a
275
  long external identifier, but C++ does not place a translation limit
276
  on significant characters for external identifiers.
277
 
278
  [^8]: The term “literal” generally designates, in this document, those
279
- tokens that are called “constants” in ISO C.
 
120
  basic character set. — *end note*]
121
 
122
  If *L* is a *user-defined-string-literal*, let *str* be the literal
123
  without its *ud-suffix* and let *len* be the number of code units in
124
  *str* (i.e., its length excluding the terminating null character). If
125
+ *S* contains a literal operator template with a constant template
126
  parameter for which *str* is a well-formed *template-argument*, the
127
  literal *L* is treated as a call of the form
128
 
129
  ``` cpp
130
  operator ""X<str>()
 
187
  [basic.fundamental]: basic.md#basic.fundamental
188
  [basic.link]: basic.md#basic.link
189
  [basic.lookup.unqual]: basic.md#basic.lookup.unqual
190
  [basic.stc]: basic.md#basic.stc
191
  [character.seq]: library.md#character.seq
192
+ [class.mem.general]: class.md#class.mem.general
193
  [conv.mem]: expr.md#conv.mem
194
  [conv.ptr]: expr.md#conv.ptr
195
  [cpp]: cpp.md#cpp
196
  [cpp.cond]: cpp.md#cpp.cond
197
+ [cpp.embed]: cpp.md#cpp.embed
198
  [cpp.import]: cpp.md#cpp.import
199
  [cpp.include]: cpp.md#cpp.include
200
  [cpp.module]: cpp.md#cpp.module
201
+ [cpp.pragma]: cpp.md#cpp.pragma
202
+ [cpp.pragma.op]: cpp.md#cpp.pragma.op
203
+ [cpp.pre]: cpp.md#cpp.pre
204
+ [cpp.predefined]: cpp.md#cpp.predefined
205
+ [cpp.replace]: cpp.md#cpp.replace
206
  [cpp.stringize]: cpp.md#cpp.stringize
207
  [dcl.attr.grammar]: dcl.md#dcl.attr.grammar
208
+ [dcl.pre]: dcl.md#dcl.pre
209
+ [expr.const]: expr.md#expr.const
210
  [expr.prim.literal]: expr.md#expr.prim.literal
211
  [headers]: library.md#headers
212
+ [intro.object]: basic.md#intro.object
213
  [lex]: #lex
214
  [lex.bool]: #lex.bool
215
  [lex.ccon]: #lex.ccon
216
  [lex.ccon.esc]: #lex.ccon.esc
217
  [lex.ccon.literal]: #lex.ccon.literal
218
+ [lex.char]: #lex.char
219
  [lex.charset]: #lex.charset
220
  [lex.charset.basic]: #lex.charset.basic
221
  [lex.charset.literal]: #lex.charset.literal
222
  [lex.comment]: #lex.comment
223
  [lex.digraph]: #lex.digraph
 
241
  [lex.pptoken]: #lex.pptoken
242
  [lex.separate]: #lex.separate
243
  [lex.string]: #lex.string
244
  [lex.string.concat]: #lex.string.concat
245
  [lex.string.literal]: #lex.string.literal
246
+ [lex.string.uneval]: #lex.string.uneval
247
  [lex.token]: #lex.token
248
+ [lex.universal.char]: #lex.universal.char
249
  [module.import]: module.md#module.import
250
+ [module.reach]: module.md#module.reach
251
  [module.unit]: module.md#module.unit
252
  [over.literal]: over.md#over.literal
253
  [support.types.layout]: support.md#support.types.layout
254
  [temp.explicit]: temp.md#temp.explicit
255
+ [temp.inst]: temp.md#temp.inst
256
  [temp.names]: temp.md#temp.names
257
+ [temp.point]: temp.md#temp.point
258
+ [uaxid]: uax31.md#uaxid
259
 
260
  [^1]: Implementations behave as if these separate phases occur, although
261
  in practice different phases can be folded together.
262
 
263
+ [^2]: Unicode® is a registered trademark of Unicode, Inc. This
264
+ information is given for the convenience of users of this document
265
+ and does not constitute an endorsement by ISO or IEC of this
266
+ product.
267
+
268
+ [^3]: A partial preprocessing token would arise from a source file
269
  ending in the first portion of a multi-character token that requires
270
  a terminating sequence of characters, such as a *header-name* that
271
  is missing the closing `"` or `>`. A partial comment would arise
272
  from a source file ending with an unclosed `/*` comment.
273
 
274
+ [^4]: These include “digraphs” and additional reserved words. The term
275
  “digraph” (token consisting of two characters) is not perfectly
276
  descriptive, since one of the alternative *preprocessing-token*s is
277
  `%:%:` and of course several primary tokens contain two characters.
278
  Nonetheless, those alternative tokens that aren’t lexical keywords
279
  are colloquially known as “digraphs”.
280
 
281
+ [^5]: Thus the “stringized” values [[cpp.stringize]] of `[` and `<:`
282
  will be different, maintaining the source spelling, but the tokens
283
  can otherwise be freely interchanged.
284
 
285
+ [^6]: Literals include strings and character and numeric literals.
 
 
 
 
 
286
 
287
  [^7]: On systems in which linkers cannot accept extended characters, an
288
  encoding of the \*universal-character-name\* can be used in forming
289
  valid external identifiers. For example, some otherwise unused
290
  character or sequence of characters can be used to encode the `̆` in
291
  a \*universal-character-name\*. Extended characters can produce a
292
  long external identifier, but C++ does not place a translation limit
293
  on significant characters for external identifiers.
294
 
295
  [^8]: The term “literal” generally designates, in this document, those
296
+ tokens that are called “constants” in C.