]>
git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/22_locale/ctype/is/char/2.cc
1 // { dg-do run { xfail *-*-![linux]* } }
2 // Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
4 // This file is part of the GNU ISO C++ Library. This library is free
5 // software; you can redistribute it and/or modify it under the
6 // terms of the GNU General Public License as published by the
7 // Free Software Foundation; either version 2, or (at your option)
10 // This library is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License along
16 // with this library; see the file COPYING. If not, write to the Free
17 // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
20 // As a special exception, you may use this file as part of a free software
21 // library without restriction. Specifically, if other files instantiate
22 // templates or use macros or inline functions from this file, or you compile
23 // this file and link it with other files to produce an executable, this
24 // file does not by itself cause the resulting executable to be covered by
25 // the GNU General Public License. This exception does not however
26 // invalidate any other reasons why the executable file might be covered by
27 // the GNU General Public License.
29 // 22.2.1.3.2 ctype<char> members
33 #include <testsuite_hooks.h>
35 typedef char char_type
;
37 // libstdc++/4456, libstdc++/4457, libstdc++/4458
41 typedef ctype_base::mask mask
;
42 typedef vector
<mask
> vector_type
;
46 // const int max = numeric_limits<char>::max();
48 const int ctype_mask_max
= 10;
50 vector_type
v_de(max
);
53 locale loc_c
= locale::classic();
54 const ctype
<char>& ctype_c
= use_facet
<ctype
<char> >(loc_c
);
55 for (int i
= 0; i
< max
; ++i
)
57 char_type c
= static_cast<char>(i
);
58 mask mask_test
= static_cast<mask
>(0);
59 mask mask_is
= static_cast<mask
>(0);
60 for (int j
= 0; j
<= ctype_mask_max
; ++j
)
62 mask_test
= static_cast<mask
>(1 << j
);
63 if (ctype_c
.is(mask_test
, c
))
70 locale loc_de
= __gnu_cxx_test::try_named_locale("de_DE");
71 const ctype
<char>& ctype_de
= use_facet
<ctype
<char> >(loc_de
);
72 for (int i
= 0; i
< max
; ++i
)
74 char_type c
= static_cast<char>(i
);
75 mask mask_test
= static_cast<mask
>(0);
76 mask mask_is
= static_cast<mask
>(0);
77 for (int j
= 0; j
<= ctype_mask_max
; ++j
)
79 mask_test
= static_cast<mask
>(1 << j
);
80 if (ctype_de
.is(mask_test
, c
))
86 #if QUANNUM_VERBOSE_LYRICALLY_ADEPT_BAY_AREA_MCS_MODE
87 for (int i
= 0; i
< max
; ++i
)
89 char_type mark
= v_c
[i
] == v_de
[i
] ? ' ' : '-';
90 cout
<< i
<< ' ' << mark
<< ' ' << static_cast<char>(i
) << '\t' ;
91 cout
<< "v_c: " << setw(4) << v_c
[i
] << '\t';
92 cout
<< "v_de: " << setw(4) << v_de
[i
] << endl
;
94 cout
<< (v_c
== v_de
) << endl
;
97 VERIFY( v_c
!= v_de
);