Warning: This file is not a C or C++ file. It does not have highlighting.
1 | // -*- C++ -*- |
---|---|
2 | //===----------------------------------------------------------------------===// |
3 | // |
4 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
5 | // See https://llvm.org/LICENSE.txt for license information. |
6 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
7 | // |
8 | //===----------------------------------------------------------------------===// |
9 | |
10 | #ifndef _LIBCPP_WCTYPE_H |
11 | #define _LIBCPP_WCTYPE_H |
12 | |
13 | /* |
14 | wctype.h synopsis |
15 | |
16 | Macros: |
17 | |
18 | WEOF |
19 | |
20 | Types: |
21 | |
22 | wint_t |
23 | wctrans_t |
24 | wctype_t |
25 | |
26 | int iswalnum(wint_t wc); |
27 | int iswalpha(wint_t wc); |
28 | int iswblank(wint_t wc); // C99 |
29 | int iswcntrl(wint_t wc); |
30 | int iswdigit(wint_t wc); |
31 | int iswgraph(wint_t wc); |
32 | int iswlower(wint_t wc); |
33 | int iswprint(wint_t wc); |
34 | int iswpunct(wint_t wc); |
35 | int iswspace(wint_t wc); |
36 | int iswupper(wint_t wc); |
37 | int iswxdigit(wint_t wc); |
38 | int iswctype(wint_t wc, wctype_t desc); |
39 | wctype_t wctype(const char* property); |
40 | wint_t towlower(wint_t wc); |
41 | wint_t towupper(wint_t wc); |
42 | wint_t towctrans(wint_t wc, wctrans_t desc); |
43 | wctrans_t wctrans(const char* property); |
44 | |
45 | */ |
46 | |
47 | #if defined(__cplusplus) && __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) |
48 | # include <__cxx03/wctype.h> |
49 | #else |
50 | # include <__config> |
51 | |
52 | # if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) |
53 | # pragma GCC system_header |
54 | # endif |
55 | |
56 | // TODO: |
57 | // In the future, we should unconditionally include_next <wctype.h> here and instead |
58 | // have a mode under which the library does not need libc++'s <wctype.h> or <cwctype> |
59 | // at all (i.e. a mode without wchar_t). As it stands, we need to do that to completely |
60 | // bypass the using declarations in <cwctype> when we did not include <wctype.h>. |
61 | // Otherwise, a using declaration like `using ::wint_t` in <cwctype> will refer to |
62 | // nothing (with using_if_exists), and if we include another header that defines one |
63 | // of these declarations (e.g. <wchar.h>), the second `using ::wint_t` with using_if_exists |
64 | // will fail because it does not refer to the same declaration. |
65 | # if __has_include_next(<wctype.h>) |
66 | # include_next <wctype.h> |
67 | # define _LIBCPP_INCLUDED_C_LIBRARY_WCTYPE_H |
68 | # endif |
69 | |
70 | # ifdef __cplusplus |
71 | |
72 | # undef iswalnum |
73 | # undef iswalpha |
74 | # undef iswblank |
75 | # undef iswcntrl |
76 | # undef iswdigit |
77 | # undef iswgraph |
78 | # undef iswlower |
79 | # undef iswprint |
80 | # undef iswpunct |
81 | # undef iswspace |
82 | # undef iswupper |
83 | # undef iswxdigit |
84 | # undef iswctype |
85 | # undef wctype |
86 | # undef towlower |
87 | # undef towupper |
88 | # undef towctrans |
89 | # undef wctrans |
90 | |
91 | # endif // __cplusplus |
92 | #endif // defined(__cplusplus) && __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) |
93 | |
94 | #endif // _LIBCPP_WCTYPE_H |
95 |
Warning: This file is not a C or C++ file. It does not have highlighting.