libcxx

libcxx mirror with random patches
git clone https://git.neptards.moe/neptards/libcxx.git
Log | Files | Refs

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 }