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
|
| 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]:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
[^
|
| 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 |
-
[^
|
| 260 |
will be different, maintaining the source spelling, but the tokens
|
| 261 |
can otherwise be freely interchanged.
|
| 262 |
|
| 263 |
-
[^
|
| 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
|
|
|
|
| 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.
|