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