blob: 867338fb09c26eb466a3e321946908e0f8c2da4f [file] [log] [blame]
Howard Hinnantbc8d3f92010-05-11 19:42:16 +00001//===----------------------------------------------------------------------===//
2//
Howard Hinnantf5256e12010-05-11 21:36:01 +00003// The LLVM Compiler Infrastructure
Howard Hinnantbc8d3f92010-05-11 19:42:16 +00004//
Howard Hinnantb64f8b02010-11-16 22:09:02 +00005// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
Howard Hinnantbc8d3f92010-05-11 19:42:16 +00007//
8//===----------------------------------------------------------------------===//
9
10// <cctype>
11
12#include <cctype>
13#include <type_traits>
14#include <cassert>
15
16#ifdef isalnum
17#error isalnum defined
18#endif
19
20#ifdef isalpha
21#error isalpha defined
22#endif
23
24#ifdef isblank
25#error isblank defined
26#endif
27
28#ifdef iscntrl
29#error iscntrl defined
30#endif
31
32#ifdef isdigit
33#error isdigit defined
34#endif
35
36#ifdef isgraph
37#error isgraph defined
38#endif
39
40#ifdef islower
41#error islower defined
42#endif
43
44#ifdef isprint
45#error isprint defined
46#endif
47
48#ifdef ispunct
49#error ispunct defined
50#endif
51
52#ifdef isspace
53#error isspace defined
54#endif
55
56#ifdef isupper
57#error isupper defined
58#endif
59
60#ifdef isxdigit
61#error isxdigit defined
62#endif
63
64#ifdef tolower
65#error tolower defined
66#endif
67
68#ifdef toupper
69#error toupper defined
70#endif
71
72int main()
73{
74 static_assert((std::is_same<decltype(std::isalnum(0)), int>::value), "");
75 static_assert((std::is_same<decltype(std::isalpha(0)), int>::value), "");
76 static_assert((std::is_same<decltype(std::isblank(0)), int>::value), "");
77 static_assert((std::is_same<decltype(std::iscntrl(0)), int>::value), "");
78 static_assert((std::is_same<decltype(std::isdigit(0)), int>::value), "");
79 static_assert((std::is_same<decltype(std::isgraph(0)), int>::value), "");
80 static_assert((std::is_same<decltype(std::islower(0)), int>::value), "");
81 static_assert((std::is_same<decltype(std::isprint(0)), int>::value), "");
82 static_assert((std::is_same<decltype(std::ispunct(0)), int>::value), "");
83 static_assert((std::is_same<decltype(std::isspace(0)), int>::value), "");
84 static_assert((std::is_same<decltype(std::isupper(0)), int>::value), "");
85 static_assert((std::is_same<decltype(std::isxdigit(0)), int>::value), "");
86 static_assert((std::is_same<decltype(std::tolower(0)), int>::value), "");
87 static_assert((std::is_same<decltype(std::toupper(0)), int>::value), "");
88
Dan Albert1d4a1ed2016-05-25 22:36:09 -070089 assert(isalnum('a'));
90 assert(isalpha('a'));
91 assert(isblank(' '));
92 assert(!iscntrl(' '));
93 assert(!isdigit('a'));
94 assert(isgraph('a'));
95 assert(islower('a'));
96 assert(isprint('a'));
97 assert(!ispunct('a'));
98 assert(!isspace('a'));
99 assert(!isupper('a'));
100 assert(isxdigit('a'));
101 assert(tolower('A') == 'a');
102 assert(toupper('a') == 'A');
Howard Hinnantbc8d3f92010-05-11 19:42:16 +0000103}