]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / tr1 / 6_containers / hash / 24799.cc
1 // 2005-11-11 Paolo Carlini <pcarlini@suse.de>
2 //
3 // Copyright (C) 2005-2024 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.
10 //
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.
15 //
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/>.
19
20 // 6.3.3 Class template hash
21
22 #include <tr1/functional>
23 #include <string>
24 #include <tr1/type_traits>
25 #include <testsuite_tr1.h>
26 #include <testsuite_hooks.h>
27
28 template<typename T>
29 void
30 do_test()
31 {
32 using std::tr1::is_same;
33 using __gnu_test::test_relationship;
34
35 typedef typename std::tr1::hash<T>::argument_type argument_type;
36 typedef typename std::tr1::hash<T>::result_type result_type;
37
38 VERIFY( (test_relationship<is_same, argument_type, T>(true)) );
39 VERIFY( (test_relationship<is_same, result_type, std::size_t>(true)) );
40 }
41
42 // libstdc++/24799
43 void test01()
44 {
45 do_test<bool>();
46 do_test<char>();
47 do_test<signed char>();
48 do_test<unsigned char>();
49 do_test<short>();
50 do_test<int>();
51 do_test<long>();
52 do_test<unsigned short>();
53 do_test<unsigned int>();
54 do_test<unsigned long>();
55 do_test<int*>();
56 do_test<std::string>();
57 do_test<float>();
58 do_test<double>();
59 do_test<long double>();
60
61 do_test<wchar_t>();
62 do_test<std::wstring>();
63 }
64
65 int main()
66 {
67 test01();
68 return 0;
69 }