cctype.pass.cpp (2340B)
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 #include "test_macros.h" 17 18 #ifdef isalnum 19 #error isalnum defined 20 #endif 21 22 #ifdef isalpha 23 #error isalpha defined 24 #endif 25 26 #ifdef isblank 27 #error isblank defined 28 #endif 29 30 #ifdef iscntrl 31 #error iscntrl defined 32 #endif 33 34 #ifdef isdigit 35 #error isdigit defined 36 #endif 37 38 #ifdef isgraph 39 #error isgraph defined 40 #endif 41 42 #ifdef islower 43 #error islower defined 44 #endif 45 46 #ifdef isprint 47 #error isprint defined 48 #endif 49 50 #ifdef ispunct 51 #error ispunct defined 52 #endif 53 54 #ifdef isspace 55 #error isspace defined 56 #endif 57 58 #ifdef isupper 59 #error isupper defined 60 #endif 61 62 #ifdef isxdigit 63 #error isxdigit defined 64 #endif 65 66 #ifdef tolower 67 #error tolower defined 68 #endif 69 70 #ifdef toupper 71 #error toupper defined 72 #endif 73 74 int main() 75 { 76 77 ASSERT_SAME_TYPE(int, decltype(std::isalnum(0))); 78 ASSERT_SAME_TYPE(int, decltype(std::isalpha(0))); 79 ASSERT_SAME_TYPE(int, decltype(std::isblank(0))); 80 ASSERT_SAME_TYPE(int, decltype(std::iscntrl(0))); 81 ASSERT_SAME_TYPE(int, decltype(std::isdigit(0))); 82 ASSERT_SAME_TYPE(int, decltype(std::isgraph(0))); 83 ASSERT_SAME_TYPE(int, decltype(std::islower(0))); 84 ASSERT_SAME_TYPE(int, decltype(std::isprint(0))); 85 ASSERT_SAME_TYPE(int, decltype(std::ispunct(0))); 86 ASSERT_SAME_TYPE(int, decltype(std::isspace(0))); 87 ASSERT_SAME_TYPE(int, decltype(std::isupper(0))); 88 ASSERT_SAME_TYPE(int, decltype(std::isxdigit(0))); 89 ASSERT_SAME_TYPE(int, decltype(std::tolower(0))); 90 ASSERT_SAME_TYPE(int, decltype(std::toupper(0))); 91 92 assert( std::isalnum('a')); 93 assert( std::isalpha('a')); 94 assert( std::isblank(' ')); 95 assert(!std::iscntrl(' ')); 96 assert(!std::isdigit('a')); 97 assert( std::isgraph('a')); 98 assert( std::islower('a')); 99 assert( std::isprint('a')); 100 assert(!std::ispunct('a')); 101 assert(!std::isspace('a')); 102 assert(!std::isupper('a')); 103 assert( std::isxdigit('a')); 104 assert( std::tolower('A') == 'a'); 105 assert( std::toupper('a') == 'A'); 106 }