From Jason Turner

[c.locales]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmphm4px_vv/{from.md → to.md} +21 -24
tmp/tmphm4px_vv/{from.md → to.md} RENAMED
@@ -20,17 +20,17 @@ namespace std {
20
  ```
21
 
22
  The contents and meaning of the header `<clocale>` are the same as the C
23
  standard library header `<locale.h>`.
24
 
25
- Calls to the function `setlocale` may introduce a data race (
26
- [[res.on.data.races]]) with other calls to `setlocale` or with calls to
27
- the functions listed in Table  [[tab:setlocale.data.races]].
28
 
29
- ISO C 7.11.
30
 
31
- **Table: Potential `setlocale` data races** <a id="tab:setlocale.data.races">[tab:setlocale.data.races]</a>
32
 
33
  | | | | | |
34
  | --------- | ---------- | ----------- | ------------ | ---------- |
35
  | `fprintf` | `isprint` | `iswdigit` | `localeconv` | `tolower` |
36
  | `fscanf` | `ispunct` | `iswgraph` | `mblen` | `toupper` |
@@ -72,23 +72,25 @@ ISO C 7.11.
72
  [facet.num.put.members]: #facet.num.put.members
73
  [facet.num.put.virtuals]: #facet.num.put.virtuals
74
  [facet.numpunct]: #facet.numpunct
75
  [facet.numpunct.members]: #facet.numpunct.members
76
  [facet.numpunct.virtuals]: #facet.numpunct.virtuals
77
- [facets.examples]: #facets.examples
78
  [file.streams]: input.md#file.streams
79
  [ios.base]: input.md#ios.base
80
  [istream.formatted]: input.md#istream.formatted
81
  [istream.formatted.reqmts]: input.md#istream.formatted.reqmts
82
  [iterator.requirements]: iterators.md#iterator.requirements
83
  [lex.charset]: lex.md#lex.charset
84
  [locale]: #locale
85
  [locale.categories]: #locale.categories
86
  [locale.category]: #locale.category
 
87
  [locale.codecvt]: #locale.codecvt
88
  [locale.codecvt.byname]: #locale.codecvt.byname
 
89
  [locale.codecvt.members]: #locale.codecvt.members
 
90
  [locale.codecvt.virtuals]: #locale.codecvt.virtuals
91
  [locale.collate]: #locale.collate
92
  [locale.collate.byname]: #locale.collate.byname
93
  [locale.collate.members]: #locale.collate.members
94
  [locale.collate.virtuals]: #locale.collate.virtuals
@@ -119,51 +121,50 @@ ISO C 7.11.
119
  [locale.nm.put]: #locale.nm.put
120
  [locale.num.get]: #locale.num.get
121
  [locale.numpunct]: #locale.numpunct
122
  [locale.numpunct.byname]: #locale.numpunct.byname
123
  [locale.operators]: #locale.operators
 
124
  [locale.statics]: #locale.statics
125
  [locale.syn]: #locale.syn
126
  [locale.time.get]: #locale.time.get
127
  [locale.time.get.byname]: #locale.time.get.byname
 
128
  [locale.time.get.members]: #locale.time.get.members
129
  [locale.time.get.virtuals]: #locale.time.get.virtuals
130
  [locale.time.put]: #locale.time.put
131
  [locale.time.put.byname]: #locale.time.put.byname
132
  [locale.time.put.members]: #locale.time.put.members
133
  [locale.time.put.virtuals]: #locale.time.put.virtuals
134
  [locale.types]: #locale.types
135
  [locales]: #locales
136
  [localization]: #localization
137
  [localization.general]: #localization.general
 
138
  [ostream.formatted.reqmts]: input.md#ostream.formatted.reqmts
139
  [res.on.data.races]: library.md#res.on.data.races
140
  [sequence.reqmts]: containers.md#sequence.reqmts
141
- [tab:lib.locale.time.get.virtuals.dogetdate]: #tab:lib.locale.time.get.virtuals.dogetdate
142
- [tab:localization.category.facets]: #tab:localization.category.facets
143
- [tab:localization.convert.result.values.out.in]: #tab:localization.convert.result.values.out.in
144
- [tab:localization.convert.result.values.unshift]: #tab:localization.convert.result.values.unshift
145
- [tab:localization.lib.summary]: #tab:localization.lib.summary
146
- [tab:localization.required.specializations]: #tab:localization.required.specializations
147
- [tab:setlocale.data.races]: #tab:setlocale.data.races
148
  [vector]: containers.md#vector
149
 
150
  [^1]: In this subclause, the type name `struct tm` is an incomplete type
151
  that is defined in `<ctime>`.
152
 
153
- [^2]: Note that in the call to `put` the stream is implicitly converted
154
  to an `ostreambuf_iterator<charT, traits>`.
155
 
156
  [^3]: This is a complete list of requirements; there are no other
157
  requirements. Thus, a facet class need not have a public copy
158
  constructor, assignment, default constructor, destructor, etc.
159
 
160
  [^4]: When used in a loop, it is faster to cache the `ctype<>` facet and
161
  use it directly, or use the vector form of `ctype<>::is`.
162
 
163
  [^5]: The char argument of `do_widen` is intended to accept values
164
- derived from character literals for conversion to the locale’s
165
  encoding.
166
 
167
  [^6]: In other words, the transformed character is not a member of any
168
  character classification that `c` is not also a member of.
169
 
@@ -211,12 +212,12 @@ ISO C 7.11.
211
  vendors do.
212
 
213
  [^18]: Interpretation of the `modifier` argument is
214
  implementation-defined, but should follow POSIX conventions.
215
 
216
- [^19]: Implementations are encouraged to refer to other standards such
217
- as POSIX for these definitions.
218
 
219
  [^20]: The semantics here are different from `ct.narrow`.
220
 
221
  [^21]: An array of `char`, rather than an array of `part`, is specified
222
  for `pattern::field` purely for efficiency.
@@ -225,15 +226,11 @@ ISO C 7.11.
225
 
226
  [^23]: In common U.S. locales this is `’,’`.
227
 
228
  [^24]: To specify grouping by 3s, the value is `"\003"` *not* `"3"`.
229
 
230
- [^25]: For international specializations (second template parameter
231
- `true`) this is typically four characters long, usually three
232
- letters and a space.
233
 
234
- [^26]: This is usually the empty string.
235
 
236
- [^27]: In common U.S. locales, this is 2.
237
-
238
- [^28]: Note that the international symbol returned by `do_curr_sym()`
239
  usually contains a space, itself; for example, `"USD "`.
 
20
  ```
21
 
22
  The contents and meaning of the header `<clocale>` are the same as the C
23
  standard library header `<locale.h>`.
24
 
25
+ Calls to the function `setlocale` may introduce a data race
26
+ [[res.on.data.races]] with other calls to `setlocale` or with calls to
27
+ the functions listed in [[setlocale.data.races]].
28
 
29
+ See also: ISO C 7.11
30
 
31
+ **Table: Potential `setlocale` data races** <a id="setlocale.data.races">[setlocale.data.races]</a>
32
 
33
  | | | | | |
34
  | --------- | ---------- | ----------- | ------------ | ---------- |
35
  | `fprintf` | `isprint` | `iswdigit` | `localeconv` | `tolower` |
36
  | `fscanf` | `ispunct` | `iswgraph` | `mblen` | `toupper` |
 
72
  [facet.num.put.members]: #facet.num.put.members
73
  [facet.num.put.virtuals]: #facet.num.put.virtuals
74
  [facet.numpunct]: #facet.numpunct
75
  [facet.numpunct.members]: #facet.numpunct.members
76
  [facet.numpunct.virtuals]: #facet.numpunct.virtuals
 
77
  [file.streams]: input.md#file.streams
78
  [ios.base]: input.md#ios.base
79
  [istream.formatted]: input.md#istream.formatted
80
  [istream.formatted.reqmts]: input.md#istream.formatted.reqmts
81
  [iterator.requirements]: iterators.md#iterator.requirements
82
  [lex.charset]: lex.md#lex.charset
83
  [locale]: #locale
84
  [locale.categories]: #locale.categories
85
  [locale.category]: #locale.category
86
+ [locale.category.facets]: #locale.category.facets
87
  [locale.codecvt]: #locale.codecvt
88
  [locale.codecvt.byname]: #locale.codecvt.byname
89
+ [locale.codecvt.inout]: #locale.codecvt.inout
90
  [locale.codecvt.members]: #locale.codecvt.members
91
+ [locale.codecvt.unshift]: #locale.codecvt.unshift
92
  [locale.codecvt.virtuals]: #locale.codecvt.virtuals
93
  [locale.collate]: #locale.collate
94
  [locale.collate.byname]: #locale.collate.byname
95
  [locale.collate.members]: #locale.collate.members
96
  [locale.collate.virtuals]: #locale.collate.virtuals
 
121
  [locale.nm.put]: #locale.nm.put
122
  [locale.num.get]: #locale.num.get
123
  [locale.numpunct]: #locale.numpunct
124
  [locale.numpunct.byname]: #locale.numpunct.byname
125
  [locale.operators]: #locale.operators
126
+ [locale.spec]: #locale.spec
127
  [locale.statics]: #locale.statics
128
  [locale.syn]: #locale.syn
129
  [locale.time.get]: #locale.time.get
130
  [locale.time.get.byname]: #locale.time.get.byname
131
+ [locale.time.get.dogetdate]: #locale.time.get.dogetdate
132
  [locale.time.get.members]: #locale.time.get.members
133
  [locale.time.get.virtuals]: #locale.time.get.virtuals
134
  [locale.time.put]: #locale.time.put
135
  [locale.time.put.byname]: #locale.time.put.byname
136
  [locale.time.put.members]: #locale.time.put.members
137
  [locale.time.put.virtuals]: #locale.time.put.virtuals
138
  [locale.types]: #locale.types
139
  [locales]: #locales
140
  [localization]: #localization
141
  [localization.general]: #localization.general
142
+ [localization.summary]: #localization.summary
143
  [ostream.formatted.reqmts]: input.md#ostream.formatted.reqmts
144
  [res.on.data.races]: library.md#res.on.data.races
145
  [sequence.reqmts]: containers.md#sequence.reqmts
146
+ [setlocale.data.races]: #setlocale.data.races
147
+ [tab:locale.category.facets]: #tab:locale.category.facets
148
+ [tab:locale.spec]: #tab:locale.spec
 
 
 
 
149
  [vector]: containers.md#vector
150
 
151
  [^1]: In this subclause, the type name `struct tm` is an incomplete type
152
  that is defined in `<ctime>`.
153
 
154
+ [^2]: Note that in the call to `put`, the stream is implicitly converted
155
  to an `ostreambuf_iterator<charT, traits>`.
156
 
157
  [^3]: This is a complete list of requirements; there are no other
158
  requirements. Thus, a facet class need not have a public copy
159
  constructor, assignment, default constructor, destructor, etc.
160
 
161
  [^4]: When used in a loop, it is faster to cache the `ctype<>` facet and
162
  use it directly, or use the vector form of `ctype<>::is`.
163
 
164
  [^5]: The char argument of `do_widen` is intended to accept values
165
+ derived from *character-literal*s for conversion to the locale’s
166
  encoding.
167
 
168
  [^6]: In other words, the transformed character is not a member of any
169
  character classification that `c` is not also a member of.
170
 
 
212
  vendors do.
213
 
214
  [^18]: Interpretation of the `modifier` argument is
215
  implementation-defined, but should follow POSIX conventions.
216
 
217
+ [^19]: Implementations should refer to other standards such as POSIX for
218
+ these definitions.
219
 
220
  [^20]: The semantics here are different from `ct.narrow`.
221
 
222
  [^21]: An array of `char`, rather than an array of `part`, is specified
223
  for `pattern::field` purely for efficiency.
 
226
 
227
  [^23]: In common U.S. locales this is `’,’`.
228
 
229
  [^24]: To specify grouping by 3s, the value is `"\003"` *not* `"3"`.
230
 
231
+ [^25]: This is usually the empty string.
 
 
232
 
233
+ [^26]: In common U.S. locales, this is 2.
234
 
235
+ [^27]: Note that the international symbol returned by `do_curr_symbol()`
 
 
236
  usually contains a space, itself; for example, `"USD "`.