is_1.pass.cpp revision 83e2c4d877fe2d7793868b1c6a5d9525a7c4d431
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// <locale> 11 12// template <class charT> class ctype_byname; 13 14// bool is(mask m, charT c) const; 15 16#include <locale> 17#include <type_traits> 18#include <cassert> 19 20#include "platform_support.h" // locale name macros 21 22int main() 23{ 24 { 25 std::locale l(LOCALE_en_US_UTF_8); 26 { 27 typedef std::ctype<wchar_t> F; 28 const F& f = std::use_facet<F>(l); 29 30 assert(f.is(F::space, L' ')); 31 assert(!f.is(F::space, L'A')); 32 33 assert(f.is(F::print, L' ')); 34 assert(!f.is(F::print, L'\x07')); 35 36 assert(f.is(F::cntrl, L'\x07')); 37 assert(!f.is(F::cntrl, L' ')); 38 39 assert(f.is(F::upper, L'A')); 40 assert(!f.is(F::upper, L'a')); 41 42 assert(f.is(F::lower, L'a')); 43 assert(!f.is(F::lower, L'A')); 44 45 assert(f.is(F::alpha, L'a')); 46 assert(!f.is(F::alpha, L'1')); 47 48 assert(f.is(F::digit, L'1')); 49 assert(!f.is(F::digit, L'a')); 50 51 assert(f.is(F::punct, L'.')); 52 assert(!f.is(F::punct, L'a')); 53 54 assert(f.is(F::xdigit, L'a')); 55 assert(!f.is(F::xdigit, L'g')); 56 57 assert(f.is(F::alnum, L'a')); 58 assert(!f.is(F::alnum, L'.')); 59 60 assert(f.is(F::graph, L'.')); 61 assert(!f.is(F::graph, L'\x07')); 62 63 assert(f.is(F::alpha, L'\x00DA')); 64 assert(f.is(F::upper, L'\x00DA')); 65 } 66 } 67 { 68 std::locale l("C"); 69 { 70 typedef std::ctype<wchar_t> F; 71 const F& f = std::use_facet<F>(l); 72 73 assert(f.is(F::space, L' ')); 74 assert(!f.is(F::space, L'A')); 75 76 assert(f.is(F::print, L' ')); 77 assert(!f.is(F::print, L'\x07')); 78 79 assert(f.is(F::cntrl, L'\x07')); 80 assert(!f.is(F::cntrl, L' ')); 81 82 assert(f.is(F::upper, L'A')); 83 assert(!f.is(F::upper, L'a')); 84 85 assert(f.is(F::lower, L'a')); 86 assert(!f.is(F::lower, L'A')); 87 88 assert(f.is(F::alpha, L'a')); 89 assert(!f.is(F::alpha, L'1')); 90 91 assert(f.is(F::digit, L'1')); 92 assert(!f.is(F::digit, L'a')); 93 94 assert(f.is(F::punct, L'.')); 95 assert(!f.is(F::punct, L'a')); 96 97 assert(f.is(F::xdigit, L'a')); 98 assert(!f.is(F::xdigit, L'g')); 99 100 assert(f.is(F::alnum, L'a')); 101 assert(!f.is(F::alnum, L'.')); 102 103 assert(f.is(F::graph, L'.')); 104 assert(!f.is(F::graph, L'\x07')); 105 106 assert(!f.is(F::alpha, L'\x00DA')); 107 assert(!f.is(F::upper, L'\x00DA')); 108 } 109 } 110} 111