1 //===----------------------------------------------------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is dual licensed under the MIT and the University of Illinois Open 6 // Source Licenses. See LICENSE.TXT for details. 7 // 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 72 int 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 89 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'); 103 } 104