]>
git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/util/testsuite_shared.cc
1 // Copyright (C) 2004-2014 Free Software Foundation, Inc.
3 // This file is part of the GNU ISO C++ Library. This library is free
4 // software; you can redistribute it and/or modify it under the
5 // terms of the GNU General Public License as published by the
6 // Free Software Foundation; either version 3, or (at your option)
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License along
15 // with this library; see the file COPYING3. If not see
16 // <http://www.gnu.org/licenses/>.
24 #include <ext/mt_allocator.h>
25 #include <bits/functexcept.h>
35 typedef __gnu_cxx::__mt_alloc
<value_t
> allocator_t
;
37 typedef std::char_traits
<value_t
> traits_t
;
38 typedef std::basic_string
<value_t
, traits_t
, allocator_t
> string_t
;
41 s
+= "west beach, indiana dunes";
50 std::__throw_bad_exception();
52 catch (const std::exception
& e
)
57 try_function_random_fail()
59 long seed
= lrand48();
65 s
<< "random_throw, seed: " << seed
<< std::endl
;
71 try_throw_exception();
74 // Randomly throw. See if other threads cleanup.
75 std::__throw_bad_exception();
78 #if __cplusplus < 201103L
79 // "must be compiled with C++98"
81 erase_external(std::set
<int>& s
)
82 { s
.erase(s
.begin()); }
85 erase_external(std::multiset
<int>& s
)
86 { s
.erase(s
.begin()); }
89 erase_external(std::map
<int, int>& s
)
90 { s
.erase(s
.begin()); }
93 erase_external(std::multimap
<int, int>& s
)
94 { s
.erase(s
.begin()); }
97 erase_external_iterators(std::set
<int>& s
)
99 typedef typename
std::set
<int>::iterator iterator_type
;
100 iterator_type iter
= s
.begin();
101 s
.erase(iter
, ++iter
);
105 erase_external_iterators(std::multiset
<int>& s
)
107 typedef typename
std::multiset
<int>::iterator iterator_type
;
108 iterator_type iter
= s
.begin();
109 s
.erase(iter
, ++iter
);
113 erase_external_iterators(std::map
<int, int>& s
)
115 typedef typename
std::map
<int, int>::iterator iterator_type
;
116 iterator_type iter
= s
.begin();
117 s
.erase(iter
, ++iter
);
122 erase_external_iterators(std::multimap
<int, int>& s
)
124 typedef typename
std::multimap
<int, int>::iterator iterator_type
;
125 iterator_type iter
= s
.begin();
126 s
.erase(iter
, ++iter
);
130 } // end namepace __gnu_test