Create embedded-5_0-branch branch for development on ARM embedded cores.
[official-gcc.git] / embedded-5_0-branch / libstdc++-v3 / testsuite / tr1 / 6_containers / hash / 24799.cc
blobca79f2098d22f52f4ae36b5f2c23cf2a85ad8fc3
1 // 2005-11-11 Paolo Carlini <pcarlini@suse.de>
2 //
3 // Copyright (C) 2005-2015 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 // 6.3.3 Class template hash
22 #include <tr1/functional>
23 #include <string>
24 #include <tr1/type_traits>
25 #include <testsuite_tr1.h>
26 #include <testsuite_hooks.h>
28 template<typename T>
29 void
30 do_test()
32 bool test __attribute__((unused)) = true;
34 using std::tr1::is_same;
35 using __gnu_test::test_relationship;
37 typedef typename std::tr1::hash<T>::argument_type argument_type;
38 typedef typename std::tr1::hash<T>::result_type result_type;
40 VERIFY( (test_relationship<is_same, argument_type, T>(true)) );
41 VERIFY( (test_relationship<is_same, result_type, std::size_t>(true)) );
44 // libstdc++/24799
45 void test01()
47 do_test<bool>();
48 do_test<char>();
49 do_test<signed char>();
50 do_test<unsigned char>();
51 do_test<short>();
52 do_test<int>();
53 do_test<long>();
54 do_test<unsigned short>();
55 do_test<unsigned int>();
56 do_test<unsigned long>();
57 do_test<int*>();
58 do_test<std::string>();
59 do_test<float>();
60 do_test<double>();
61 do_test<long double>();
63 #ifdef _GLIBCXX_USE_WCHAR_T
64 do_test<wchar_t>();
65 do_test<std::wstring>();
66 #endif
69 int main()
71 test01();
72 return 0;