From Jason Turner

[c.mb.wcs]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpyx5jo4jb/{from.md → to.md} +344 -162
tmp/tmpyx5jo4jb/{from.md → to.md} RENAMED
@@ -11,11 +11,11 @@ size_t wcstombs(char* s, const wchar_t* pwcs, size_t n);
11
  ```
12
 
13
  *Effects:* These functions have the semantics specified in the C
14
  standard library.
15
 
16
- See also: ISO C 7.22.7.1, 7.22.8, 7.29.6.2.1
17
 
18
  ``` cpp
19
  int mbtowc(wchar_t* pwc, const char* s, size_t n);
20
  int wctomb(char* s, wchar_t wchar);
21
  ```
@@ -24,16 +24,22 @@ int wctomb(char* s, wchar_t wchar);
24
  standard library.
25
 
26
  *Remarks:* Calls to these functions may introduce a data
27
  race [[res.on.data.races]] with other calls to the same function.
28
 
29
- See also: ISO C 7.22.7
30
 
31
  ``` cpp
32
  size_t mbrlen(const char* s, size_t n, mbstate_t* ps);
33
  size_t mbrtowc(wchar_t* pwc, const char* s, size_t n, mbstate_t* ps);
34
  size_t wcrtomb(char* s, wchar_t wc, mbstate_t* ps);
 
 
 
 
 
 
35
  size_t mbsrtowcs(wchar_t* dst, const char** src, size_t len, mbstate_t* ps);
36
  size_t wcsrtombs(char* dst, const wchar_t** src, size_t len, mbstate_t* ps);
37
  ```
38
 
39
  *Effects:* These functions have the semantics specified in the C
@@ -42,190 +48,366 @@ standard library.
42
  *Remarks:* Calling these functions with an `mbstate_t*` argument that is
43
  a null pointer value may introduce a data race [[res.on.data.races]]
44
  with other calls to the same function with an `mbstate_t*` argument that
45
  is a null pointer value.
46
 
47
- See also: ISO C 7.29.6.3
48
-
49
- ``` cpp
50
- size_t mbrtoc8(char8_t* pc8, const char* s, size_t n, mbstate_t* ps);
51
- ```
52
-
53
- *Effects:* If `s` is a null pointer, equivalent to
54
- `mbrtoc8(nullptr, "", 1, ps)`. Otherwise, the function inspects at most
55
- `n` bytes beginning with the byte pointed to by `s` to determine the
56
- number of bytes needed to complete the next multibyte character
57
- (including any shift sequences). If the function determines that the
58
- next multibyte character is complete and valid, it determines the values
59
- of the corresponding UTF-8 code units and then, if `pc8` is not a null
60
- pointer, stores the value of the first (or only) such code unit in the
61
- object pointed to by `pc8`. Subsequent calls will store successive UTF-8
62
- code units without consuming any additional input until all the code
63
- units have been stored. If the corresponding Unicode character is
64
- U+0000 (null), the resulting state described is the initial conversion
65
- state.
66
-
67
- *Returns:* The first of the following that applies (given the current
68
- conversion state):
69
-
70
- - `0`, if the next `n` or fewer bytes complete the multibyte character
71
- that corresponds to the U+0000 (null) Unicode character (which is the
72
- value stored).
73
- - between `1` and `n` (inclusive), if the next n or fewer bytes complete
74
- a valid multibyte character (whose first (or only) code unit is
75
- stored); the value returned is the number of bytes that complete the
76
- multibyte character.
77
- - `(size_t)(-3)`, if the next code unit resulting from a previous call
78
- has been stored (no bytes from the input have been consumed by this
79
- call).
80
- - `(size_t)(-2)`, if the next `n` bytes contribute to an incomplete (but
81
- potentially valid) multibyte character, and all `n` bytes have been
82
- processed (no value is stored).
83
- - `(size_t)(-1)`, if an encoding error occurs, in which case the next
84
- `n` or fewer bytes do not contribute to a complete and valid multibyte
85
- character (no value is stored); the value of the macro `EILSEQ` is
86
- stored in `errno`, and the conversion state is unspecified.
87
-
88
- ``` cpp
89
- size_t c8rtomb(char* s, char8_t c8, mbstate_t* ps);
90
- ```
91
-
92
- *Effects:* If `s` is a null pointer, equivalent to
93
- `c8rtomb(buf, u8’`\`0’, ps)` where `buf` is an internal buffer.
94
- Otherwise, if `c8` completes a sequence of valid UTF-8 code units,
95
- determines the number of bytes needed to represent the multibyte
96
- character (including any shift sequences), and stores the multibyte
97
- character representation in the array whose first element is pointed to
98
- by `s`. At most `MB_CUR_MAX` bytes are stored. If the multibyte
99
- character is a null character, a null byte is stored, preceded by any
100
- shift sequence needed to restore the initial shift state; the resulting
101
- state described is the initial conversion state.
102
-
103
- *Returns:* The number of bytes stored in the array object (including any
104
- shift sequences). If `c8` does not contribute to a sequence of `char8_t`
105
- corresponding to a valid multibyte character, the value of the macro
106
- `EILSEQ` is stored in `errno`, `(size_t) (-1)` is returned, and the
107
- conversion state is unspecified.
108
-
109
- *Remarks:* Calls to `c8rtomb` with a null pointer argument for `s` may
110
- introduce a data race [[res.on.data.races]] with other calls to
111
- `c8rtomb` with a null pointer argument for `s`.
112
 
113
  <!-- Link reference definitions -->
114
- [basic.indet]: basic.md#basic.indet
115
- [basic.string]: #basic.string
116
- [basic.string.general]: #basic.string.general
117
- [basic.string.hash]: #basic.string.hash
118
- [basic.string.literals]: #basic.string.literals
 
 
 
 
119
  [c.mb.wcs]: #c.mb.wcs
120
- [c.strings]: #c.strings
 
 
 
 
 
 
 
 
 
 
121
  [cctype.syn]: #cctype.syn
122
- [char.traits]: #char.traits
123
- [char.traits.general]: #char.traits.general
124
- [char.traits.req]: #char.traits.req
125
- [char.traits.require]: #char.traits.require
126
- [char.traits.specializations]: #char.traits.specializations
127
- [char.traits.specializations.char]: #char.traits.specializations.char
128
- [char.traits.specializations.char16.t]: #char.traits.specializations.char16.t
129
- [char.traits.specializations.char32.t]: #char.traits.specializations.char32.t
130
- [char.traits.specializations.char8.t]: #char.traits.specializations.char8.t
131
- [char.traits.specializations.general]: #char.traits.specializations.general
132
- [char.traits.specializations.wchar.t]: #char.traits.specializations.wchar.t
133
- [char.traits.typedefs]: #char.traits.typedefs
134
- [cmp.categories]: support.md#cmp.categories
135
  [container.reqmts]: containers.md#container.reqmts
136
- [container.requirements]: containers.md#container.requirements
137
  [container.requirements.general]: containers.md#container.requirements.general
 
138
  [cpp17.copyassignable]: #cpp17.copyassignable
139
  [cpp17.copyconstructible]: #cpp17.copyconstructible
140
  [cpp17.defaultconstructible]: #cpp17.defaultconstructible
141
  [cpp17.destructible]: #cpp17.destructible
142
- [cstring.syn]: #cstring.syn
143
  [cuchar.syn]: #cuchar.syn
144
  [cwchar.syn]: #cwchar.syn
145
  [cwctype.syn]: #cwctype.syn
146
  [defns.character.container]: intro.md#defns.character.container
147
- [input.output]: input.md#input.output
148
- [intro.object]: basic.md#intro.object
149
- [iostream.forward]: input.md#iostream.forward
150
- [iostreams.limits.pos]: input.md#iostreams.limits.pos
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
  [istream.formatted.reqmts]: input.md#istream.formatted.reqmts
152
- [istream.unformatted]: input.md#istream.unformatted
153
- [iterator.concept.contiguous]: iterators.md#iterator.concept.contiguous
154
- [iterator.concept.winc]: iterators.md#iterator.concept.winc
155
- [iterator.range]: iterators.md#iterator.range
156
  [iterator.requirements.general]: iterators.md#iterator.requirements.general
 
 
157
  [library.c]: library.md#library.c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
158
  [ostream.formatted.reqmts]: input.md#ostream.formatted.reqmts
159
- [random.access.iterators]: iterators.md#random.access.iterators
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
  [res.on.data.races]: library.md#res.on.data.races
 
 
161
  [sequence.reqmts]: containers.md#sequence.reqmts
162
- [string.access]: #string.access
163
- [string.accessors]: #string.accessors
164
- [string.append]: #string.append
165
- [string.assign]: #string.assign
166
- [string.capacity]: #string.capacity
167
- [string.classes]: #string.classes
168
- [string.classes.general]: #string.classes.general
169
- [string.cmp]: #string.cmp
170
- [string.compare]: #string.compare
171
- [string.cons]: #string.cons
172
- [string.contains]: #string.contains
173
- [string.conversions]: #string.conversions
174
- [string.copy]: #string.copy
175
- [string.ends.with]: #string.ends.with
176
- [string.erase]: #string.erase
177
- [string.erasure]: #string.erasure
178
- [string.find]: #string.find
179
- [string.insert]: #string.insert
180
- [string.io]: #string.io
181
- [string.iterators]: #string.iterators
182
- [string.modifiers]: #string.modifiers
183
- [string.nonmembers]: #string.nonmembers
184
- [string.op.append]: #string.op.append
185
- [string.op.plus]: #string.op.plus
186
- [string.ops]: #string.ops
187
- [string.replace]: #string.replace
188
- [string.require]: #string.require
189
- [string.special]: #string.special
190
- [string.starts.with]: #string.starts.with
191
- [string.substr]: #string.substr
192
- [string.swap]: #string.swap
193
- [string.syn]: #string.syn
194
- [string.view]: #string.view
195
- [string.view.access]: #string.view.access
196
- [string.view.capacity]: #string.view.capacity
197
- [string.view.compare]: #string.view.compare
198
- [string.view.comparison]: #string.view.comparison
199
- [string.view.comparison.overloads]: #string.view.comparison.overloads
200
- [string.view.cons]: #string.view.cons
201
- [string.view.deduct]: #string.view.deduct
202
- [string.view.find]: #string.view.find
203
- [string.view.general]: #string.view.general
204
- [string.view.hash]: #string.view.hash
205
- [string.view.io]: #string.view.io
206
- [string.view.iterators]: #string.view.iterators
207
- [string.view.literals]: #string.view.literals
208
- [string.view.modifiers]: #string.view.modifiers
209
- [string.view.ops]: #string.view.ops
210
- [string.view.synop]: #string.view.synop
211
- [string.view.template]: #string.view.template
212
- [string.view.template.general]: #string.view.template.general
213
- [strings]: #strings
214
- [strings.general]: #strings.general
215
- [strings.summary]: #strings.summary
216
- [support.signal]: support.md#support.signal
217
- [temp.deduct]: temp.md#temp.deduct
218
- [term.standard.layout.type]: basic.md#term.standard.layout.type
219
  [term.trivially.copyable.type]: basic.md#term.trivially.copyable.type
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  [unord.hash]: utilities.md#unord.hash
221
- [utility.swap]: utilities.md#utility.swap
222
 
223
- [^1]: If `eof()` can be held in `char_type` then some iostreams
224
- operations can give surprising results.
225
 
226
- [^2]: Because `basic_string_view` refers to a constant sequence,
227
- `iterator` and `const_iterator` are the same type.
228
 
229
- [^3]: For example, as an argument to non-member functions `swap()`
230
- [[string.special]], `operator>{}>()` [[string.io]], and `getline()`
231
- [[string.io]], or as an argument to `basic_string::swap()`.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  ```
12
 
13
  *Effects:* These functions have the semantics specified in the C
14
  standard library.
15
 
16
+ See also: ISO C 7.24.8.2, 7.24.9, 7.31.6.3.1
17
 
18
  ``` cpp
19
  int mbtowc(wchar_t* pwc, const char* s, size_t n);
20
  int wctomb(char* s, wchar_t wchar);
21
  ```
 
24
  standard library.
25
 
26
  *Remarks:* Calls to these functions may introduce a data
27
  race [[res.on.data.races]] with other calls to the same function.
28
 
29
+ See also: ISO C 7.24.8
30
 
31
  ``` cpp
32
  size_t mbrlen(const char* s, size_t n, mbstate_t* ps);
33
  size_t mbrtowc(wchar_t* pwc, const char* s, size_t n, mbstate_t* ps);
34
  size_t wcrtomb(char* s, wchar_t wc, mbstate_t* ps);
35
+ size_t mbrtoc8(char8_t* pc8, const char* s, size_t n, mbstate_t* ps);
36
+ size_t c8rtomb(char* s, char8_t c8, mbstate_t* ps);
37
+ size_t mbrtoc16(char16_t* pc16, const char* s, size_t n, mbstate_t* ps);
38
+ size_t c16rtomb(char* s, char16_t c16, mbstate_t* ps);
39
+ size_t mbrtoc32(char32_t* pc32, const char* s, size_t n, mbstate_t* ps);
40
+ size_t c32rtomb(char* s, char32_t c32, mbstate_t* ps);
41
  size_t mbsrtowcs(wchar_t* dst, const char** src, size_t len, mbstate_t* ps);
42
  size_t wcsrtombs(char* dst, const wchar_t** src, size_t len, mbstate_t* ps);
43
  ```
44
 
45
  *Effects:* These functions have the semantics specified in the C
 
48
  *Remarks:* Calling these functions with an `mbstate_t*` argument that is
49
  a null pointer value may introduce a data race [[res.on.data.races]]
50
  with other calls to the same function with an `mbstate_t*` argument that
51
  is a null pointer value.
52
 
53
+ See also: ISO C 7.30.2, 7.31.6.4, 7.31.6.5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
 
55
  <!-- Link reference definitions -->
56
+ [alg.lex.comparison]: algorithms.md#alg.lex.comparison
57
+ [alg.sort]: algorithms.md#alg.sort
58
+ [algorithms]: algorithms.md#algorithms
59
+ [algorithms.requirements]: algorithms.md#algorithms.requirements
60
+ [basic.fundamental]: basic.md#basic.fundamental
61
+ [basic.start.static]: basic.md#basic.start.static
62
+ [bitmask.types]: library.md#bitmask.types
63
+ [c.files]: input.md#c.files
64
+ [c.locales]: #c.locales
65
  [c.mb.wcs]: #c.mb.wcs
66
+ [category.collate]: #category.collate
67
+ [category.ctype]: #category.ctype
68
+ [category.ctype.general]: #category.ctype.general
69
+ [category.messages]: #category.messages
70
+ [category.messages.general]: #category.messages.general
71
+ [category.monetary]: #category.monetary
72
+ [category.monetary.general]: #category.monetary.general
73
+ [category.numeric]: #category.numeric
74
+ [category.numeric.general]: #category.numeric.general
75
+ [category.time]: #category.time
76
+ [category.time.general]: #category.time.general
77
  [cctype.syn]: #cctype.syn
78
+ [character.seq.general]: library.md#character.seq.general
79
+ [charconv]: #charconv
80
+ [charconv.from.chars]: #charconv.from.chars
81
+ [charconv.syn]: #charconv.syn
82
+ [charconv.to.chars]: #charconv.to.chars
83
+ [classification]: #classification
84
+ [clocale.data.races]: #clocale.data.races
85
+ [clocale.syn]: #clocale.syn
86
+ [container.alloc.reqmts]: containers.md#container.alloc.reqmts
 
 
 
 
87
  [container.reqmts]: containers.md#container.reqmts
 
88
  [container.requirements.general]: containers.md#container.requirements.general
89
+ [conversions.character]: #conversions.character
90
  [cpp17.copyassignable]: #cpp17.copyassignable
91
  [cpp17.copyconstructible]: #cpp17.copyconstructible
92
  [cpp17.defaultconstructible]: #cpp17.defaultconstructible
93
  [cpp17.destructible]: #cpp17.destructible
 
94
  [cuchar.syn]: #cuchar.syn
95
  [cwchar.syn]: #cwchar.syn
96
  [cwctype.syn]: #cwctype.syn
97
  [defns.character.container]: intro.md#defns.character.container
98
+ [defns.ntcts]: intro.md#defns.ntcts
99
+ [enumerated.types]: library.md#enumerated.types
100
+ [expr.const]: expr.md#expr.const
101
+ [facet.ctype.char.dtor]: #facet.ctype.char.dtor
102
+ [facet.ctype.char.members]: #facet.ctype.char.members
103
+ [facet.ctype.char.statics]: #facet.ctype.char.statics
104
+ [facet.ctype.char.virtuals]: #facet.ctype.char.virtuals
105
+ [facet.ctype.special]: #facet.ctype.special
106
+ [facet.ctype.special.general]: #facet.ctype.special.general
107
+ [facet.num.get.members]: #facet.num.get.members
108
+ [facet.num.get.virtuals]: #facet.num.get.virtuals
109
+ [facet.num.put.members]: #facet.num.put.members
110
+ [facet.num.put.virtuals]: #facet.num.put.virtuals
111
+ [facet.numpunct]: #facet.numpunct
112
+ [facet.numpunct.members]: #facet.numpunct.members
113
+ [facet.numpunct.virtuals]: #facet.numpunct.virtuals
114
+ [file.streams]: input.md#file.streams
115
+ [format]: #format
116
+ [format.align]: #format.align
117
+ [format.arg]: #format.arg
118
+ [format.arg.store]: #format.arg.store
119
+ [format.args]: #format.args
120
+ [format.arguments]: #format.arguments
121
+ [format.context]: #format.context
122
+ [format.err.report]: #format.err.report
123
+ [format.error]: #format.error
124
+ [format.escape.sequences]: #format.escape.sequences
125
+ [format.fmt.string]: #format.fmt.string
126
+ [format.formattable]: #format.formattable
127
+ [format.formatter]: #format.formatter
128
+ [format.formatter.locking]: #format.formatter.locking
129
+ [format.formatter.spec]: #format.formatter.spec
130
+ [format.functions]: #format.functions
131
+ [format.parse.ctx]: #format.parse.ctx
132
+ [format.range]: #format.range
133
+ [format.range.fmtdef]: #format.range.fmtdef
134
+ [format.range.fmtkind]: #format.range.fmtkind
135
+ [format.range.fmtmap]: #format.range.fmtmap
136
+ [format.range.fmtset]: #format.range.fmtset
137
+ [format.range.fmtstr]: #format.range.fmtstr
138
+ [format.range.formatter]: #format.range.formatter
139
+ [format.sign]: #format.sign
140
+ [format.string]: #format.string
141
+ [format.string.escaped]: #format.string.escaped
142
+ [format.string.general]: #format.string.general
143
+ [format.string.std]: #format.string.std
144
+ [format.syn]: #format.syn
145
+ [format.tuple]: #format.tuple
146
+ [format.type.bool]: #format.type.bool
147
+ [format.type.char]: #format.type.char
148
+ [format.type.float]: #format.type.float
149
+ [format.type.int]: #format.type.int
150
+ [format.type.ptr]: #format.type.ptr
151
+ [format.type.string]: #format.type.string
152
+ [formatter]: #formatter
153
+ [formatter.basic]: #formatter.basic
154
+ [formatter.range.type]: #formatter.range.type
155
+ [formatter.requirements]: #formatter.requirements
156
+ [formatter.tuple.type]: #formatter.tuple.type
157
+ [forward.iterators]: iterators.md#forward.iterators
158
+ [input.iterators]: iterators.md#input.iterators
159
+ [ios.base]: input.md#ios.base
160
+ [istream.formatted]: input.md#istream.formatted
161
  [istream.formatted.reqmts]: input.md#istream.formatted.reqmts
162
+ [iterator.concept.bidir]: iterators.md#iterator.concept.bidir
163
+ [iterator.concept.output]: iterators.md#iterator.concept.output
164
+ [iterator.requirements]: iterators.md#iterator.requirements
 
165
  [iterator.requirements.general]: iterators.md#iterator.requirements.general
166
+ [lex.charset]: lex.md#lex.charset
167
+ [lex.string.literal]: lex.md#lex.string.literal
168
  [library.c]: library.md#library.c
169
+ [locale]: #locale
170
+ [locale.categories]: #locale.categories
171
+ [locale.categories.general]: #locale.categories.general
172
+ [locale.category]: #locale.category
173
+ [locale.category.facets]: #locale.category.facets
174
+ [locale.codecvt]: #locale.codecvt
175
+ [locale.codecvt.byname]: #locale.codecvt.byname
176
+ [locale.codecvt.general]: #locale.codecvt.general
177
+ [locale.codecvt.inout]: #locale.codecvt.inout
178
+ [locale.codecvt.members]: #locale.codecvt.members
179
+ [locale.codecvt.unshift]: #locale.codecvt.unshift
180
+ [locale.codecvt.virtuals]: #locale.codecvt.virtuals
181
+ [locale.collate]: #locale.collate
182
+ [locale.collate.byname]: #locale.collate.byname
183
+ [locale.collate.general]: #locale.collate.general
184
+ [locale.collate.members]: #locale.collate.members
185
+ [locale.collate.virtuals]: #locale.collate.virtuals
186
+ [locale.cons]: #locale.cons
187
+ [locale.convenience]: #locale.convenience
188
+ [locale.ctype]: #locale.ctype
189
+ [locale.ctype.byname]: #locale.ctype.byname
190
+ [locale.ctype.general]: #locale.ctype.general
191
+ [locale.ctype.members]: #locale.ctype.members
192
+ [locale.ctype.virtuals]: #locale.ctype.virtuals
193
+ [locale.facet]: #locale.facet
194
+ [locale.general]: #locale.general
195
+ [locale.global.templates]: #locale.global.templates
196
+ [locale.id]: #locale.id
197
+ [locale.members]: #locale.members
198
+ [locale.messages]: #locale.messages
199
+ [locale.messages.byname]: #locale.messages.byname
200
+ [locale.messages.general]: #locale.messages.general
201
+ [locale.messages.members]: #locale.messages.members
202
+ [locale.messages.virtuals]: #locale.messages.virtuals
203
+ [locale.money.get]: #locale.money.get
204
+ [locale.money.get.general]: #locale.money.get.general
205
+ [locale.money.get.members]: #locale.money.get.members
206
+ [locale.money.get.virtuals]: #locale.money.get.virtuals
207
+ [locale.money.put]: #locale.money.put
208
+ [locale.money.put.general]: #locale.money.put.general
209
+ [locale.money.put.members]: #locale.money.put.members
210
+ [locale.money.put.virtuals]: #locale.money.put.virtuals
211
+ [locale.moneypunct]: #locale.moneypunct
212
+ [locale.moneypunct.byname]: #locale.moneypunct.byname
213
+ [locale.moneypunct.general]: #locale.moneypunct.general
214
+ [locale.moneypunct.members]: #locale.moneypunct.members
215
+ [locale.moneypunct.virtuals]: #locale.moneypunct.virtuals
216
+ [locale.nm.put]: #locale.nm.put
217
+ [locale.nm.put.general]: #locale.nm.put.general
218
+ [locale.num.get]: #locale.num.get
219
+ [locale.num.get.general]: #locale.num.get.general
220
+ [locale.numpunct]: #locale.numpunct
221
+ [locale.numpunct.byname]: #locale.numpunct.byname
222
+ [locale.numpunct.general]: #locale.numpunct.general
223
+ [locale.operators]: #locale.operators
224
+ [locale.spec]: #locale.spec
225
+ [locale.statics]: #locale.statics
226
+ [locale.syn]: #locale.syn
227
+ [locale.time.get]: #locale.time.get
228
+ [locale.time.get.byname]: #locale.time.get.byname
229
+ [locale.time.get.dogetdate]: #locale.time.get.dogetdate
230
+ [locale.time.get.general]: #locale.time.get.general
231
+ [locale.time.get.members]: #locale.time.get.members
232
+ [locale.time.get.virtuals]: #locale.time.get.virtuals
233
+ [locale.time.put]: #locale.time.put
234
+ [locale.time.put.byname]: #locale.time.put.byname
235
+ [locale.time.put.general]: #locale.time.put.general
236
+ [locale.time.put.members]: #locale.time.put.members
237
+ [locale.time.put.virtuals]: #locale.time.put.virtuals
238
+ [locale.types]: #locale.types
239
+ [locales]: #locales
240
+ [localization]: #localization
241
+ [localization.general]: #localization.general
242
+ [localization.summary]: #localization.summary
243
+ [namespace.std]: library.md#namespace.std
244
  [ostream.formatted.reqmts]: input.md#ostream.formatted.reqmts
245
+ [output.iterators]: iterators.md#output.iterators
246
+ [re]: #re
247
+ [re.alg]: #re.alg
248
+ [re.alg.match]: #re.alg.match
249
+ [re.alg.replace]: #re.alg.replace
250
+ [re.alg.search]: #re.alg.search
251
+ [re.badexp]: #re.badexp
252
+ [re.const]: #re.const
253
+ [re.const.general]: #re.const.general
254
+ [re.err]: #re.err
255
+ [re.except]: #re.except
256
+ [re.general]: #re.general
257
+ [re.grammar]: #re.grammar
258
+ [re.iter]: #re.iter
259
+ [re.matchflag]: #re.matchflag
260
+ [re.regex]: #re.regex
261
+ [re.regex.assign]: #re.regex.assign
262
+ [re.regex.construct]: #re.regex.construct
263
+ [re.regex.general]: #re.regex.general
264
+ [re.regex.locale]: #re.regex.locale
265
+ [re.regex.nonmemb]: #re.regex.nonmemb
266
+ [re.regex.operations]: #re.regex.operations
267
+ [re.regex.swap]: #re.regex.swap
268
+ [re.regiter]: #re.regiter
269
+ [re.regiter.cnstr]: #re.regiter.cnstr
270
+ [re.regiter.comp]: #re.regiter.comp
271
+ [re.regiter.deref]: #re.regiter.deref
272
+ [re.regiter.general]: #re.regiter.general
273
+ [re.regiter.incr]: #re.regiter.incr
274
+ [re.req]: #re.req
275
+ [re.results]: #re.results
276
+ [re.results.acc]: #re.results.acc
277
+ [re.results.all]: #re.results.all
278
+ [re.results.const]: #re.results.const
279
+ [re.results.form]: #re.results.form
280
+ [re.results.general]: #re.results.general
281
+ [re.results.nonmember]: #re.results.nonmember
282
+ [re.results.size]: #re.results.size
283
+ [re.results.state]: #re.results.state
284
+ [re.results.swap]: #re.results.swap
285
+ [re.submatch]: #re.submatch
286
+ [re.submatch.general]: #re.submatch.general
287
+ [re.submatch.members]: #re.submatch.members
288
+ [re.submatch.op]: #re.submatch.op
289
+ [re.summary]: #re.summary
290
+ [re.syn]: #re.syn
291
+ [re.synopt]: #re.synopt
292
+ [re.tokiter]: #re.tokiter
293
+ [re.tokiter.cnstr]: #re.tokiter.cnstr
294
+ [re.tokiter.comp]: #re.tokiter.comp
295
+ [re.tokiter.deref]: #re.tokiter.deref
296
+ [re.tokiter.general]: #re.tokiter.general
297
+ [re.tokiter.incr]: #re.tokiter.incr
298
+ [re.traits]: #re.traits
299
+ [re.traits.classnames]: #re.traits.classnames
300
  [res.on.data.races]: library.md#res.on.data.races
301
+ [res.on.exception.handling]: library.md#res.on.exception.handling
302
+ [round.style]: support.md#round.style
303
  [sequence.reqmts]: containers.md#sequence.reqmts
304
+ [setlocale.data.races]: #setlocale.data.races
305
+ [strings.general]: strings.md#strings.general
306
+ [support.runtime]: support.md#support.runtime
307
+ [swappable.requirements]: library.md#swappable.requirements
308
+ [tab:locale.category.facets]: #tab:locale.category.facets
309
+ [tab:locale.spec]: #tab:locale.spec
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
310
  [term.trivially.copyable.type]: basic.md#term.trivially.copyable.type
311
+ [text]: #text
312
+ [text.c.strings]: #text.c.strings
313
+ [text.encoding]: #text.encoding
314
+ [text.encoding.aliases]: #text.encoding.aliases
315
+ [text.encoding.class]: #text.encoding.class
316
+ [text.encoding.cmp]: #text.encoding.cmp
317
+ [text.encoding.general]: #text.encoding.general
318
+ [text.encoding.hash]: #text.encoding.hash
319
+ [text.encoding.id]: #text.encoding.id
320
+ [text.encoding.members]: #text.encoding.members
321
+ [text.encoding.overview]: #text.encoding.overview
322
+ [text.encoding.syn]: #text.encoding.syn
323
+ [text.general]: #text.general
324
+ [text.summary]: #text.summary
325
+ [time.format]: time.md#time.format
326
  [unord.hash]: utilities.md#unord.hash
327
+ [vector]: containers.md#vector
328
 
329
+ [^1]: In this subclause, the type name `tm` is an incomplete type that
330
+ is defined in `<ctime>`.
331
 
332
+ [^2]: Note that in the call to `put`, the stream is implicitly converted
333
+ to an `ostreambuf_iterator<charT, traits>`.
334
 
335
+ [^3]: This is a complete list of requirements; there are no other
336
+ requirements. Thus, a facet class need not have a public copy
337
+ constructor, assignment, default constructor, destructor, etc.
338
+
339
+ [^4]: When used in a loop, it is faster to cache the `ctype<>` facet and
340
+ use it directly, or use the vector form of `ctype<>::is`.
341
+
342
+ [^5]: The parameter `c` of `do_widen` is intended to accept values
343
+ derived from *character-literal*s for conversion to the locale’s
344
+ encoding.
345
+
346
+ [^6]: In other words, the transformed character is not a member of any
347
+ character classification that `c` is not also a member of.
348
+
349
+ [^7]: Only the `char` (not `unsigned char` and `signed char`) form is
350
+ provided. The specialization is specified in the standard, and not
351
+ left as an implementation detail, because it affects the derivation
352
+ interface for `ctype<char>`.
353
+
354
+ [^8]: Informally, this means that `basic_filebuf` assumes that the
355
+ mappings from internal to external characters is 1 to N: that a
356
+ `codecvt` facet that is used by `basic_filebuf` can translate
357
+ characters one internal character at a time.
358
+
359
+ [^9]: Typically these will be characters to return the state to
360
+ `stateT()`.
361
+
362
+ [^10]: If `encoding()` yields `-1`, then more than `max_length()`
363
+ `externT` elements can be consumed when producing a single `internT`
364
+ character, and additional `externT` elements can appear at the end
365
+ of a sequence after those that yield the final `internT` character.
366
+
367
+ [^11]: Parsing `"-1"` correctly into, e.g., an `unsigned short` requires
368
+ that the corresponding member `get()` at least extract the sign
369
+ before delegating.
370
+
371
+ [^12]: The conversion specification `#o` generates a leading `0` which
372
+ is *not* a padding character.
373
+
374
+ [^13]: Thus, the string `"\003"` specifies groups of 3 digits each, and
375
+ `"3"` probably indicates groups of 51 (!) digits each, because 51 is
376
+ the ASCII value of `"3"`.
377
+
378
+ [^14]: This function is useful when one string is being compared to many
379
+ other strings.
380
+
381
+ [^15]: In other words, user confirmation is required for reliable
382
+ parsing of user-entered dates and times, but machine-generated
383
+ formats can be parsed reliably. This allows parsers to be aggressive
384
+ about interpreting user variations on standard formats.
385
+
386
+ [^16]: This function is intended as a convenience only, for common
387
+ formats, and can return `no_order` in valid locales.
388
+
389
+ [^17]: The semantics here are different from `ct.narrow`.
390
+
391
+ [^18]: An array of `char`, rather than an array of `part`, is specified
392
+ for `pattern::field` purely for efficiency.
393
+
394
+ [^19]: In common U.S. locales this is `’.’`.
395
+
396
+ [^20]: In common U.S. locales this is `’,’`.
397
+
398
+ [^21]: To specify grouping by 3s, the value is `"\003"` *not* `"3"`.
399
+
400
+ [^22]: This is usually the empty string.
401
+
402
+ [^23]: In common U.S. locales, this is 2.
403
+
404
+ [^24]: Note that the international symbol returned by `do_curr_symbol()`
405
+ usually contains a space, itself; for example, `"USD "`.
406
+
407
+ [^25]: Windows® is a registered trademark of Microsoft Corporation. This
408
+ information is given for the convenience of users of this document
409
+ and does not constitute an endorsement by ISO or IEC of this
410
+ product.
411
+
412
+ [^26]: For example, if the parameter `icase` is `true` then
413
+ `[[:lower:]]` is the same as `[[:alpha:]]`.