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]]
|
| 27 |
-
the functions listed in
|
| 28 |
|
| 29 |
-
ISO C 7.11
|
| 30 |
|
| 31 |
-
**Table: Potential `setlocale` data races** <a id="
|
| 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 |
-
[
|
| 142 |
-
[tab:
|
| 143 |
-
[tab:
|
| 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
|
| 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
|
| 217 |
-
|
| 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]:
|
| 231 |
-
`true`) this is typically four characters long, usually three
|
| 232 |
-
letters and a space.
|
| 233 |
|
| 234 |
-
[^26]:
|
| 235 |
|
| 236 |
-
[^27]:
|
| 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 "`.
|