|
|
|||
File indexing completed on 2026-05-03 08:13:46
0001 // -*- C++ -*- 0002 //===----------------------------------------------------------------------===// 0003 // 0004 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 0005 // See https://llvm.org/LICENSE.txt for license information. 0006 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 0007 // 0008 //===----------------------------------------------------------------------===// 0009 0010 #ifndef _LIBCPP___CXX03_WCTYPE_H 0011 #define _LIBCPP___CXX03_WCTYPE_H 0012 0013 /* 0014 wctype.h synopsis 0015 0016 Macros: 0017 0018 WEOF 0019 0020 Types: 0021 0022 wint_t 0023 wctrans_t 0024 wctype_t 0025 0026 int iswalnum(wint_t wc); 0027 int iswalpha(wint_t wc); 0028 int iswblank(wint_t wc); // C99 0029 int iswcntrl(wint_t wc); 0030 int iswdigit(wint_t wc); 0031 int iswgraph(wint_t wc); 0032 int iswlower(wint_t wc); 0033 int iswprint(wint_t wc); 0034 int iswpunct(wint_t wc); 0035 int iswspace(wint_t wc); 0036 int iswupper(wint_t wc); 0037 int iswxdigit(wint_t wc); 0038 int iswctype(wint_t wc, wctype_t desc); 0039 wctype_t wctype(const char* property); 0040 wint_t towlower(wint_t wc); 0041 wint_t towupper(wint_t wc); 0042 wint_t towctrans(wint_t wc, wctrans_t desc); 0043 wctrans_t wctrans(const char* property); 0044 0045 */ 0046 0047 #include <__cxx03/__config> 0048 0049 #if defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS) 0050 # error \ 0051 "The <wctype.h> header is not supported since libc++ has been configured with LIBCXX_ENABLE_WIDE_CHARACTERS disabled" 0052 #endif 0053 0054 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 0055 # pragma GCC system_header 0056 #endif 0057 0058 // TODO: 0059 // In the future, we should unconditionally include_next <wctype.h> here and instead 0060 // have a mode under which the library does not need libc++'s <wctype.h> or <cwctype> 0061 // at all (i.e. a mode without wchar_t). As it stands, we need to do that to completely 0062 // bypass the using declarations in <cwctype> when we did not include <__cxx03/wctype.h>. 0063 // Otherwise, a using declaration like `using ::wint_t` in <cwctype> will refer to 0064 // nothing (with using_if_exists), and if we include another header that defines one 0065 // of these declarations (e.g. <wchar.h>), the second `using ::wint_t` with using_if_exists 0066 // will fail because it does not refer to the same declaration. 0067 #if __has_include_next(<wctype.h>) 0068 # include_next <wctype.h> 0069 # define _LIBCPP_INCLUDED_C_LIBRARY_WCTYPE_H 0070 #endif 0071 0072 #ifdef __cplusplus 0073 0074 # undef iswalnum 0075 # undef iswalpha 0076 # undef iswblank 0077 # undef iswcntrl 0078 # undef iswdigit 0079 # undef iswgraph 0080 # undef iswlower 0081 # undef iswprint 0082 # undef iswpunct 0083 # undef iswspace 0084 # undef iswupper 0085 # undef iswxdigit 0086 # undef iswctype 0087 # undef wctype 0088 # undef towlower 0089 # undef towupper 0090 # undef towctrans 0091 # undef wctrans 0092 0093 #endif // __cplusplus 0094 0095 #endif // _LIBCPP___CXX03_WCTYPE_H
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|