xref: /llvm-project/libcxx/include/cctype (revision b9a2658a3e8bd13b0f9e7a8a440832a95b377216)
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_CCTYPE
11#define _LIBCPP_CCTYPE
12
13/*
14    cctype synopsis
15
16namespace std
17{
18
19int isalnum(int c);
20int isalpha(int c);
21int isblank(int c);  // C99
22int iscntrl(int c);
23int isdigit(int c);
24int isgraph(int c);
25int islower(int c);
26int isprint(int c);
27int ispunct(int c);
28int isspace(int c);
29int isupper(int c);
30int isxdigit(int c);
31int tolower(int c);
32int toupper(int c);
33
34}  // std
35*/
36
37#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
38#  include <__cxx03/cctype>
39#else
40#  include <__config>
41
42#  include <ctype.h>
43
44#  ifndef _LIBCPP_CTYPE_H
45#   error <cctype> tried including <ctype.h> but didn't find libc++'s <ctype.h> header. \
46          This usually means that your header search paths are not configured properly.  \
47          The header search paths should contain the C++ Standard Library headers before \
48          any C Standard Library.
49#  endif
50
51#  if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
52#    pragma GCC system_header
53#  endif
54
55_LIBCPP_BEGIN_NAMESPACE_STD
56
57#  ifdef isalnum
58#    undef isalnum
59#  endif
60
61#  ifdef isalpha
62#    undef isalpha
63#  endif
64
65#  ifdef isblank
66#    undef isblank
67#  endif
68
69#  ifdef iscntrl
70#    undef iscntrl
71#  endif
72
73#  ifdef isdigit
74#    undef isdigit
75#  endif
76
77#  ifdef isgraph
78#    undef isgraph
79#  endif
80
81#  ifdef islower
82#    undef islower
83#  endif
84
85#  ifdef isprint
86#    undef isprint
87#  endif
88
89#  ifdef ispunct
90#    undef ispunct
91#  endif
92
93#  ifdef isspace
94#    undef isspace
95#  endif
96
97#  ifdef isupper
98#    undef isupper
99#  endif
100
101#  ifdef isxdigit
102#    undef isxdigit
103#  endif
104
105#  ifdef tolower
106#    undef tolower
107#  endif
108
109#  ifdef toupper
110#    undef toupper
111#  endif
112
113using ::isalnum _LIBCPP_USING_IF_EXISTS;
114using ::isalpha _LIBCPP_USING_IF_EXISTS;
115using ::isblank _LIBCPP_USING_IF_EXISTS;
116using ::iscntrl _LIBCPP_USING_IF_EXISTS;
117using ::isdigit _LIBCPP_USING_IF_EXISTS;
118using ::isgraph _LIBCPP_USING_IF_EXISTS;
119using ::islower _LIBCPP_USING_IF_EXISTS;
120using ::isprint _LIBCPP_USING_IF_EXISTS;
121using ::ispunct _LIBCPP_USING_IF_EXISTS;
122using ::isspace _LIBCPP_USING_IF_EXISTS;
123using ::isupper _LIBCPP_USING_IF_EXISTS;
124using ::isxdigit _LIBCPP_USING_IF_EXISTS;
125using ::tolower _LIBCPP_USING_IF_EXISTS;
126using ::toupper _LIBCPP_USING_IF_EXISTS;
127
128_LIBCPP_END_NAMESPACE_STD
129#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
130
131#endif // _LIBCPP_CCTYPE
132