Reverting merge from trunk
[official-gcc.git] / libstdc++-v3 / testsuite / 23_containers / bitset / to_string / dr396.cc
blob6fb0fc76505b8b67d3f2db2791be5ba4e29a1feb
1 // 2008-09-23 Paolo Carlini <pcarlini@suse.de>
3 // Copyright (C) 2008-2013 Free Software Foundation, Inc.
4 //
5 // This file is part of the GNU ISO C++ Library. This library is free
6 // software; you can redistribute it and/or modify it under the
7 // terms of the GNU General Public License as published by the
8 // Free Software Foundation; either version 3, or (at your option)
9 // any later version.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License along
17 // with this library; see the file COPYING3. If not see
18 // <http://www.gnu.org/licenses/>.
20 // 23.3.5.2 bitset members
22 #include <bitset>
23 #include <testsuite_hooks.h>
25 // DR 396. what are characters zero and one.
26 void test01()
28 using namespace std;
29 bool test __attribute__((unused)) = true;
31 bitset<5> b5;
32 string s0 = b5.to_string<char, char_traits<char>, allocator<char> >('a', 'b');
33 VERIFY( s0 == "aaaaa" );
35 string s1 = b5.to_string<char, char_traits<char>, allocator<char> >('b');
36 VERIFY( s1 == "bbbbb" );
38 b5.set(0);
39 string s2 = b5.to_string<char, char_traits<char> >('c', 'd');
40 VERIFY( s2 == "ccccd" );
42 string s3 = b5.to_string<char, char_traits<char> >('d');
43 VERIFY( s3 == "dddd1" );
45 b5.set(2);
46 string s4 = b5.to_string<char>('e', 'f');
47 VERIFY( s4 == "eefef" );
49 string s5 = b5.to_string<char>('f');
50 VERIFY( s5 == "ff1f1" );
52 b5.set(4);
53 string s6 = b5.to_string('g', 'h');
54 VERIFY( s6 == "hghgh" );
56 string s7 = b5.to_string('h');
57 VERIFY( s7 == "1h1h1" );
60 int main()
62 test01();
63 return 0;