// -*- 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 // //===----------------------------------------------------------------------===// //============================================================================== // NOTICE: This file has been modified by Green Hills Software, Inc. Such // modifications are subject to copyright by Green Hills Software, Inc. See the // "Green Hills Software Modifications" section in the LICENSE.txt included with // this distribution for more information. //============================================================================== #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. #ifndef __ghs__ #if __has_include_next() # include_next # define _LIBCPP_INCLUDED_C_LIBRARY_WCTYPE_H #endif #else #pragma ghs nowarning 518 # include_next # define _LIBCPP_INCLUDED_C_LIBRARY_WCTYPE_H #pragma ghs endnowarning 518 #endif #if defined(__ghs__) #pragma ghs start_cxx_lib_header #pragma ghs startdata #if defined(__ghs_max_pack_value) #pragma pack (push, __ghs_max_pack_value) #endif #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 #if defined(__ghs__) #if defined(__ghs_max_pack_value) #pragma pack(pop) #endif #pragma ghs enddata #pragma ghs end_cxx_lib_header #endif #endif // _LIBCPP_WCTYPE_H