1bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===// 2bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 3f5256e16dfc425c1d466f6308d4026d529ce9e0bHoward Hinnant// The LLVM Compiler Infrastructure 4bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// Source Licenses. See LICENSE.TXT for details. 7bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// 8bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===// 9bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 10bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// <cwctype> 11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 12bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include <cwctype> 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 std::wint_t w = 0; 94bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant std::wctrans_t wctr = 0; 952a269419dceb1c071c5c5ef5c13fbee6040a20dcDan Albert std::wctype_t wct = 0; 96bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::iswalnum(w)), int>::value), ""); 97bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::iswalpha(w)), int>::value), ""); 98bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::iswblank(w)), int>::value), ""); 99bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::iswcntrl(w)), int>::value), ""); 100bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::iswdigit(w)), int>::value), ""); 101bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::iswgraph(w)), int>::value), ""); 102bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::iswlower(w)), int>::value), ""); 103bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::iswprint(w)), int>::value), ""); 104bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::iswpunct(w)), int>::value), ""); 105bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::iswspace(w)), int>::value), ""); 106bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::iswupper(w)), int>::value), ""); 107bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::iswxdigit(w)), int>::value), ""); 108bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::iswctype(w, wct)), int>::value), ""); 109bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::wctype("")), std::wctype_t>::value), ""); 110bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::towlower(w)), std::wint_t>::value), ""); 111bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::towupper(w)), std::wint_t>::value), ""); 112bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::towctrans(w, wctr)), std::wint_t>::value), ""); 113bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant static_assert((std::is_same<decltype(std::wctrans("")), std::wctrans_t>::value), ""); 114bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant} 115