wctype_h.pass.cpp revision bc8d3f97eb5c958007f2713238472e0c1c8fe02
1bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===// 2bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 3bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// ��������������������The LLVM Compiler Infrastructure 4bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 5bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// This file is distributed under the University of Illinois Open Source 6bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// License. See LICENSE.TXT for details. 7bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 8bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===// 9bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 10bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// <wctype.h> 11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 12bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <wctype.h> 13bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <type_traits> 14bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 15bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifndef WEOF 16bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error WEOF not defined 17bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 18bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 19bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef iswalnum 20bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error iswalnum defined 21bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 22bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 23bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef iswalpha 24bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error iswalpha defined 25bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 26bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 27bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef iswblank 28bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error iswblank defined 29bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 30bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 31bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef iswcntrl 32bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error iswcntrl defined 33bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 34bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 35bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef iswdigit 36bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error iswdigit defined 37bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 38bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 39bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef iswgraph 40bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error iswgraph defined 41bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 42bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 43bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef iswlower 44bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error iswlower defined 45bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 46bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 47bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef iswprint 48bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error iswprint defined 49bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 50bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 51bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef iswpunct 52bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error iswpunct defined 53bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 54bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 55bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef iswspace 56bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error iswspace defined 57bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 58bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 59bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef iswupper 60bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error iswupper defined 61bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 62bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 63bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef iswxdigit 64bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error iswxdigit defined 65bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 66bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 67bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef iswctype 68bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error iswctype defined 69bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 70bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 71bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef wctype 72bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error wctype defined 73bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 74bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 75bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef towlower 76bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error towlower defined 77bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 78bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 79bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef towupper 80bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error towupper defined 81bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 82bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 83bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef towctrans 84bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error towctrans defined 85bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 86bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 87bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifdef wctrans 88bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#error wctrans defined 89bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif 90bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 91bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantint main() 92bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant{ 93bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant wint_t w = 0; 94bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant wctrans_t wctr = 0; 95bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant wctype_t wct = 0; 96bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(iswalnum(w)), int>::value), ""); 97bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(iswalpha(w)), int>::value), ""); 98bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(iswblank(w)), int>::value), ""); 99bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(iswcntrl(w)), int>::value), ""); 100bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(iswdigit(w)), int>::value), ""); 101bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(iswgraph(w)), int>::value), ""); 102bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(iswlower(w)), int>::value), ""); 103bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(iswprint(w)), int>::value), ""); 104bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(iswpunct(w)), int>::value), ""); 105bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(iswspace(w)), int>::value), ""); 106bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(iswupper(w)), int>::value), ""); 107bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(iswxdigit(w)), int>::value), ""); 108bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(iswctype(w, wct)), int>::value), ""); 109bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(wctype("")), wctype_t>::value), ""); 110bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(towlower(w)), wint_t>::value), ""); 111bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(towupper(w)), wint_t>::value), ""); 112bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(towctrans(w, wctr)), wint_t>::value), ""); 113bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(wctrans("")), wctrans_t>::value), ""); 114bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant} 115