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

43
cppdraft/cwchar/syn.md Normal file
View File

@@ -0,0 +1,43 @@
[cwchar.syn]
# 28 Text processing library [[text]](./#text)
## 28.7 Null-terminated sequence utilities [[text.c.strings]](text.c.strings#cwchar.syn)
### 28.7.3 Header <cwchar> synopsis [cwchar.syn]
[🔗](#header:%3ccwchar%3e)
#define __STDC_VERSION_WCHAR_H__ 202311Lnamespace std {using size_t = *see [[support.types.layout]](support.types.layout "17.2.4Sizes, alignments, and offsets")*; // freestandingusing mbstate_t = *see below*; // freestandingusing wint_t = *see below*; // freestandingstruct tm; int fwprintf(FILE* stream, const wchar_t* format, ...); int fwscanf(FILE* stream, const wchar_t* format, ...); int swprintf(wchar_t* s, size_t n, const wchar_t* format, ...); int swscanf(const wchar_t* s, const wchar_t* format, ...); int vfwprintf(FILE* stream, const wchar_t* format, va_list arg); int vfwscanf(FILE* stream, const wchar_t* format, va_list arg); int vswprintf(wchar_t* s, size_t n, const wchar_t* format, va_list arg); int vswscanf(const wchar_t* s, const wchar_t* format, va_list arg); int vwprintf(const wchar_t* format, va_list arg); int vwscanf(const wchar_t* format, va_list arg); int wprintf(const wchar_t* format, ...); int wscanf(const wchar_t* format, ...);
wint_t fgetwc(FILE* stream); wchar_t* fgetws(wchar_t* s, int n, FILE* stream);
wint_t fputwc(wchar_t c, FILE* stream); int fputws(const wchar_t* s, FILE* stream); int fwide(FILE* stream, int mode);
wint_t getwc(FILE* stream);
wint_t getwchar();
wint_t putwc(wchar_t c, FILE* stream);
wint_t putwchar(wchar_t c);
wint_t ungetwc(wint_t c, FILE* stream); double wcstod(const wchar_t* nptr, wchar_t** endptr); float wcstof(const wchar_t* nptr, wchar_t** endptr); long double wcstold(const wchar_t* nptr, wchar_t** endptr); long int wcstol(const wchar_t* nptr, wchar_t** endptr, int base); long long int wcstoll(const wchar_t* nptr, wchar_t** endptr, int base); unsigned long int wcstoul(const wchar_t* nptr, wchar_t** endptr, int base); unsigned long long int wcstoull(const wchar_t* nptr, wchar_t** endptr, int base); wchar_t* wcscpy(wchar_t* s1, const wchar_t* s2); // freestandingwchar_t* wcsncpy(wchar_t* s1, const wchar_t* s2, size_t n); // freestandingwchar_t* wmemcpy(wchar_t* s1, const wchar_t* s2, size_t n); // freestandingwchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n); // freestandingwchar_t* wcscat(wchar_t* s1, const wchar_t* s2); // freestandingwchar_t* wcsncat(wchar_t* s1, const wchar_t* s2, size_t n); // freestandingint wcscmp(const wchar_t* s1, const wchar_t* s2); // freestandingint wcscoll(const wchar_t* s1, const wchar_t* s2); int wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n); // freestanding size_t wcsxfrm(wchar_t* s1, const wchar_t* s2, size_t n); int wmemcmp(const wchar_t* s1, const wchar_t* s2, size_t n); // freestandingconst wchar_t* wcschr(const wchar_t* s, wchar_t c); // freestanding; see [[library.c]](library.c "16.2The C standard library")wchar_t* wcschr(wchar_t* s, wchar_t c); // freestanding; see [[library.c]](library.c "16.2The C standard library") size_t wcscspn(const wchar_t* s1, const wchar_t* s2); // freestandingconst wchar_t* wcspbrk(const wchar_t* s1, const wchar_t* s2); // freestanding; see [[library.c]](library.c "16.2The C standard library")wchar_t* wcspbrk(wchar_t* s1, const wchar_t* s2); // freestanding; see [[library.c]](library.c "16.2The C standard library")const wchar_t* wcsrchr(const wchar_t* s, wchar_t c); // freestanding; see [[library.c]](library.c "16.2The C standard library")wchar_t* wcsrchr(wchar_t* s, wchar_t c); // freestanding; see [[library.c]](library.c "16.2The C standard library") size_t wcsspn(const wchar_t* s1, const wchar_t* s2); // freestandingconst wchar_t* wcsstr(const wchar_t* s1, const wchar_t* s2); // freestanding; see [[library.c]](library.c "16.2The C standard library")wchar_t* wcsstr(wchar_t* s1, const wchar_t* s2); // freestanding; see [[library.c]](library.c "16.2The C standard library")wchar_t* wcstok(wchar_t* s1, const wchar_t* s2, wchar_t** ptr); // freestandingconst wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n); // freestanding; see [[library.c]](library.c "16.2The C standard library")wchar_t* wmemchr(wchar_t* s, wchar_t c, size_t n); // freestanding; see [[library.c]](library.c "16.2The C standard library") size_t wcslen(const wchar_t* s); // freestandingwchar_t* wmemset(wchar_t* s, wchar_t c, size_t n); // freestanding size_t wcsftime(wchar_t* s, size_t maxsize, const wchar_t* format, const tm* timeptr);
wint_t btowc(int c); int wctob(wint_t c); // [[c.mb.wcs]](c.mb.wcs "28.7.5Multibyte / wide string and character conversion functions"), multibyte / wide string and character conversion functionsint mbsinit(const mbstate_t* ps);
size_t mbrlen(const char* s, size_t n, mbstate_t* ps);
size_t mbrtowc(wchar_t* pwc, const char* s, size_t n, mbstate_t* ps);
size_t wcrtomb(char* s, wchar_t wc, mbstate_t* ps);
size_t mbsrtowcs(wchar_t* dst, const char** src, size_t len, mbstate_t* ps);
size_t wcsrtombs(char* dst, const wchar_t** src, size_t len, mbstate_t* ps);}#define NULL *see [[support.types.nullptr]](support.types.nullptr "17.2.3Null pointers")* // freestanding#define WCHAR_MAX *see below* // freestanding#define WCHAR_MIN *see below* // freestanding#define WEOF *see below* // freestanding#define WCHAR_WIDTH *see below* // freestanding
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L13244)
The contents and meaning of the header [<cwchar>](#header:%3ccwchar%3e "28.7.3Header <cwchar> synopsis[cwchar.syn]") are the same as the C standard library header[<wchar.h>](support.c.headers.general#header:%3cwchar.h%3e "17.15.1General[support.c.headers.general]"), except that it does not declare a type wchar_t[.](#1.sentence-1)
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/text.tex#L13249)
[*Note [1](#note-1)*:
The functionswcschr, wcspbrk, wcsrchr, wcsstr, and wmemchr have different signatures in this document,
but they have the same behavior as in the C standard library ([[library.c]](library.c "16.2The C standard library"))[.](#2.sentence-1)
— *end note*]
See also: ISO/IEC 9899:2024, 7.31