This commit is contained in:
2025-10-25 03:02:53 +03:00
commit 043225d523
3416 changed files with 681196 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
[clocale.data.races]
# 28 Text processing library [[text]](./#text)
## 28.3 Localization library [[localization]](localization#clocale.data.races)
### 28.3.5 C library locales [[c.locales]](c.locales#clocale.data.races)
#### 28.3.5.2 Data races [clocale.data.races]
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L4926)
Calls to the function setlocale may introduce a data race ([[res.on.data.races]](res.on.data.races "16.4.6.10Data race avoidance"))
with other calls to setlocale or
with calls to the functions listed in Table [103](#tab:setlocale.data.races "Table 103: Potential setlocale data races")[.](#1.sentence-1)
See also: ISO/IEC 9899:2024, 7.11
Table [103](#tab:setlocale.data.races) — Potential setlocale data races [[tab:setlocale.data.races]](./tab:setlocale.data.races)
| [🔗](#tab:setlocale.data.races-row-1)<br>fprintf | isprint | iswdigit | localeconv | tolower |
| --- | --- | --- | --- | --- |
| [🔗](#tab:setlocale.data.races-row-2)<br>fscanf | ispunct | iswgraph | mblen | toupper |
| [🔗](#tab:setlocale.data.races-row-3)<br>isalnum | isspace | iswlower | mbstowcs | towlower |
| [🔗](#tab:setlocale.data.races-row-4)<br>isalpha | isupper | iswprint | mbtowc | towupper |
| [🔗](#tab:setlocale.data.races-row-5)<br>isblank | iswalnum | iswpunct | setlocale | wcscoll |
| [🔗](#tab:setlocale.data.races-row-6)<br>iscntrl | iswalpha | iswspace | strcoll | wcstod |
| [🔗](#tab:setlocale.data.races-row-7)<br>isdigit | iswblank | iswupper | strerror | wcstombs |
| [🔗](#tab:setlocale.data.races-row-8)<br>isgraph | iswcntrl | iswxdigit | strtod | wcsxfrm |
| [🔗](#tab:setlocale.data.races-row-9)<br>islower | iswctype | isxdigit | strxfrm | wctomb |

20
cppdraft/clocale/syn.md Normal file
View File

@@ -0,0 +1,20 @@
[clocale.syn]
# 28 Text processing library [[text]](./#text)
## 28.3 Localization library [[localization]](localization#clocale.syn)
### 28.3.5 C library locales [[c.locales]](c.locales#clocale.syn)
#### 28.3.5.1 Header <clocale> synopsis [clocale.syn]
[🔗](#lib:lconv)
namespace std {struct lconv; char* setlocale(int category, const char* locale);
lconv* localeconv();}#define NULL *see [[support.types.nullptr]](support.types.nullptr "17.2.3Null pointers")*#define LC_ALL *see below*#define LC_COLLATE *see below*#define LC_CTYPE *see below*#define LC_MONETARY *see below*#define LC_NUMERIC *see below*#define LC_TIME *see below*
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L4920)
The contents and meaning of the header <clocale> are the same as the C standard library header [<locale.h>](support.c.headers.general#header:%3clocale.h%3e "17.15.1General[support.c.headers.general]")[.](#1.sentence-1)