master
  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_CWCTYPE
 11#define _LIBCPP_CWCTYPE
 12
 13/*
 14    cwctype synopsis
 15
 16Macros:
 17
 18    WEOF
 19
 20namespace std
 21{
 22
 23Types:
 24
 25    wint_t
 26    wctrans_t
 27    wctype_t
 28
 29int iswalnum(wint_t wc);
 30int iswalpha(wint_t wc);
 31int iswblank(wint_t wc);  // C99
 32int iswcntrl(wint_t wc);
 33int iswdigit(wint_t wc);
 34int iswgraph(wint_t wc);
 35int iswlower(wint_t wc);
 36int iswprint(wint_t wc);
 37int iswpunct(wint_t wc);
 38int iswspace(wint_t wc);
 39int iswupper(wint_t wc);
 40int iswxdigit(wint_t wc);
 41int iswctype(wint_t wc, wctype_t desc);
 42wctype_t wctype(const char* property);
 43wint_t towlower(wint_t wc);
 44wint_t towupper(wint_t wc);
 45wint_t towctrans(wint_t wc, wctrans_t desc);
 46wctrans_t wctrans(const char* property);
 47
 48}  // std
 49
 50*/
 51
 52#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
 53#  include <__cxx03/cwctype>
 54#else
 55#  include <__config>
 56#  include <cctype>
 57
 58#  include <wctype.h>
 59
 60#  ifndef _LIBCPP_WCTYPE_H
 61#   error <cwctype> tried including <wctype.h> but didn't find libc++'s <wctype.h> header. \
 62          This usually means that your header search paths are not configured properly. \
 63          The header search paths should contain the C++ Standard Library headers before \
 64          any C Standard Library, and you are probably using compiler flags that make that \
 65          not be the case.
 66#  endif
 67
 68#  if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 69#    pragma GCC system_header
 70#  endif
 71
 72_LIBCPP_BEGIN_NAMESPACE_STD
 73
 74#  if defined(_LIBCPP_INCLUDED_C_LIBRARY_WCTYPE_H)
 75using ::wint_t _LIBCPP_USING_IF_EXISTS;
 76using ::wctrans_t _LIBCPP_USING_IF_EXISTS;
 77using ::wctype_t _LIBCPP_USING_IF_EXISTS;
 78using ::iswalnum _LIBCPP_USING_IF_EXISTS;
 79using ::iswalpha _LIBCPP_USING_IF_EXISTS;
 80using ::iswblank _LIBCPP_USING_IF_EXISTS;
 81using ::iswcntrl _LIBCPP_USING_IF_EXISTS;
 82using ::iswdigit _LIBCPP_USING_IF_EXISTS;
 83using ::iswgraph _LIBCPP_USING_IF_EXISTS;
 84using ::iswlower _LIBCPP_USING_IF_EXISTS;
 85using ::iswprint _LIBCPP_USING_IF_EXISTS;
 86using ::iswpunct _LIBCPP_USING_IF_EXISTS;
 87using ::iswspace _LIBCPP_USING_IF_EXISTS;
 88using ::iswupper _LIBCPP_USING_IF_EXISTS;
 89using ::iswxdigit _LIBCPP_USING_IF_EXISTS;
 90using ::iswctype _LIBCPP_USING_IF_EXISTS;
 91using ::wctype _LIBCPP_USING_IF_EXISTS;
 92using ::towlower _LIBCPP_USING_IF_EXISTS;
 93using ::towupper _LIBCPP_USING_IF_EXISTS;
 94using ::towctrans _LIBCPP_USING_IF_EXISTS;
 95using ::wctrans _LIBCPP_USING_IF_EXISTS;
 96#  endif // _LIBCPP_INCLUDED_C_LIBRARY_WCTYPE_H
 97
 98_LIBCPP_END_NAMESPACE_STD
 99
100#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
101
102#endif // _LIBCPP_CWCTYPE