// -*- C++ -*- //===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef _LIBCPP_WCTYPE_H #define _LIBCPP_WCTYPE_H /* wctype.h synopsis Macros: WEOF Types: wint_t wctrans_t wctype_t int iswalnum(wint_t wc); int iswalpha(wint_t wc); int iswblank(wint_t wc); // C99 int iswcntrl(wint_t wc); int iswdigit(wint_t wc); int iswgraph(wint_t wc); int iswlower(wint_t wc); int iswprint(wint_t wc); int iswpunct(wint_t wc); int iswspace(wint_t wc); int iswupper(wint_t wc); int iswxdigit(wint_t wc); int iswctype(wint_t wc, wctype_t desc); wctype_t wctype(const char* property); wint_t towlower(wint_t wc); wint_t towupper(wint_t wc); wint_t towctrans(wint_t wc, wctrans_t desc); wctrans_t wctrans(const char* property); */ #include <__config> #if defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS) # error "The header is not supported since libc++ has been configured with LIBCXX_ENABLE_WIDE_CHARACTERS disabled" #endif #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header #endif // TODO: // In the future, we should unconditionally include_next here and instead // have a mode under which the library does not need libc++'s or // at all (i.e. a mode without wchar_t). As it stands, we need to do that to completely // bypass the using declarations in when we did not include . // Otherwise, a using declaration like `using ::wint_t` in will refer to // nothing (with using_if_exists), and if we include another header that defines one // of these declarations (e.g. ), the second `using ::wint_t` with using_if_exists // will fail because it does not refer to the same declaration. #if __has_include_next() # include_next # define _LIBCPP_INCLUDED_C_LIBRARY_WCTYPE_H #endif #ifdef __cplusplus #undef iswalnum #undef iswalpha #undef iswblank #undef iswcntrl #undef iswdigit #undef iswgraph #undef iswlower #undef iswprint #undef iswpunct #undef iswspace #undef iswupper #undef iswxdigit #undef iswctype #undef wctype #undef towlower #undef towupper #undef towctrans #undef wctrans #endif // __cplusplus #endif // _LIBCPP_WCTYPE_H