gcc/libstdc++-v3/include/bits/functional_hash.h

213 lines
6.0 KiB
C
Raw Normal View History

re PR libstdc++/31426 (TR1 includes do not work with -std=c++0x) 2007-05-31 Paolo Carlini <pcarlini@suse.de> PR libstdc++/31426 * include/bits/c++config: Remove namespace association bits from tr1 to std. * include/ext/type_traits.h (__promote, __promote2, __promote3, __promote4): Add. * include/bits/hashtable.h: New. * include/bits/functional_hash.h: Likewise. * include/tr1/hashtable.h: Likewise. * include/tr1_impl/random: New. * include/tr1_impl/cinttypes: Likewise. * include/tr1_impl/cstdlib: Likewise. * include/tr1_impl/unordered_map: Likewise. * include/tr1_impl/cstdio: Likewise. * include/tr1_impl/boost_shared_ptr.h: Likewise. * include/tr1_impl/cctype: Likewise. * include/tr1_impl/random.tcc: Likewise. * include/tr1_impl/tuple: Likewise. * include/tr1_impl/functional_hash.h: Likewise. * include/tr1_impl/hashtable: Likewise. * include/tr1_impl/cmath: Likewise. * include/tr1_impl/type_traitsfwd.h: Likewise. * include/tr1_impl/hashtable_policy.h: Likewise. * include/tr1_impl/cfenv: Likewise. * include/tr1_impl/unordered_set: Likewise. * include/tr1_impl/functional: Likewise. * include/tr1_impl/utility: Likewise. * include/tr1_impl/complex: Likewise. * include/tr1_impl/type_traits: Likewise. * include/tr1_impl/cwchar: Likewise. * include/tr1_impl/cstdint: Likewise. * include/tr1_impl/regex: Likewise. * include/tr1_impl/array: Likewise. * include/tr1_impl/cwctype: Likewise. * include/tr1/type_traitsfwd.h: Remove. * include/tr1/boost_shared_ptr.h: Likewise. * include/tr1/common.h: Likewise. * include/tr1/hashtable: Likewise. * include/tr1/hashtable_policy.h: Likewise. * include/tr1/random.tcc: Likewise. * include/c_global/cinttypes: Include tr1_impl/cinttypes. * include/c_global/cstdlib: Likewise for cstdlib. * include/c_global/cstdio: Likewise for cstdio. * include/c_global/cctype: Likewise for cctype. * include/c_global/cmath: Likewise for cmath. * include/c_global/cfenv: Likewise for cfenv. * include/c_global/cwchar: Likewise for cwchar. * include/c_global/cstdint: Likewise for cstdint. * include/c_global/cwctype: Likewise for cwctype. * include/tr1/cinttypes: Likewise for cinttypes. * include/tr1/cstdlib: Likewise for cstdlib. * include/tr1/cstdio: Likewise for cstdio. * include/tr1/cctype: Likewise for cctype. * include/tr1/cmath: Likewise for cmath. * include/tr1/cfenv: Likewise for cfenv. * include/tr1/cwchar: Likewise for cwchar. * include/tr1/cstdint: Likewise for cstdint. * include/tr1/cwctype: Likewise for cwctype. * include/tr1/functional_hash.h: Likewise for functional_hash. * include/std/tuple: Include tr1_impl/tuple. * include/std/utility: Likewise for utility. * include/std/type_traits: Likewise for type_traits. (is_pod): Just forward to __is_pod. (has_trivial_default_constructor): Just forward to __has_trivial_constructor. (has_trivial_copy_constructor): Just forward to __has_trivial_copy. (has_trivial_assign): Just forward to __has_trivial_assign. (has_trivial_destructor): Just forward to __has_trivial_destructor. (has_nothrow_default_constructor): Just forward to __has_nothrow_constructor. (has_nothrow_copy_constructor): Just forward to __has_nothrow_copy. (has_nothrow_assign): Just forward to __has_nothrow_assign. (is_base_of): Just forward to __is_base_of. (is_signed, is_unsigned): Implement according to the C++0x specifications. * include/std/memory: Likewise for memory. * include/std/regex: Likewise for regex. * include/std/random: Likewise for random. * include/std/unordered_map: Likewise for unordered_map. * include/std/unordered_set: Likewise for unordered_set. * include/std/functional: Likewise for functional. * include/std/complex: Likewise for complex. * include/std/array: Likewise for array. * include/tr1/tuple: Likewise for tuple. * include/tr1/utility: Likewise for utility. * include/tr1/type_traits: Likewise for type_traits * include/tr1/memory: Likewise for memory. * include/tr1/regex: Likewise for regex. * include/tr1/random: Likewise for random. * include/tr1/unordered_map: Likewise for unordered_map. * include/tr1/unordered_set: Likewise for unordered_set. * include/tr1/functional: Likewise for functional. * include/tr1/complex: Likewise for complex. * include/tr1/array: Likewise for array. * include/c_global/ctgmath: Tweak. * include/c_global/cstdarg: Likewise. * include/c_global/ctime: Likewise. * include/c_global/climits: Likewise. * include/c_global/cfloat: Likewise. * include/c_global/ccomplex: Likewise. * include/c_global/cstdbool: Likewise. * include/tr1/poly_laguerre.tcc: Tweak, don't use _GLIBCXX_TR1. * include/tr1/riemann_zeta.tcc: Likewise. * include/tr1/beta_function.tcc: Likewise. * include/tr1/exp_integral.tcc: Likewise. * include/tr1/hypergeometric.tcc: Likewise. * include/tr1/modified_bessel_func.tcc: Likewise. * include/tr1/legendre_function.tcc: Likewise. * include/tr1/special_function_util.h: Likewise. * include/tr1/bessel_function.tcc: Likewise. * include/tr1/poly_hermite.tcc: Likewise. * include/tr1/ell_integral.tcc: Likewise. * include/tr1/gamma.tcc: Likewise. * include/tr1/stdlib.h: Likewise. * include/tr1/math.h: Likewise. * include/tr1/complex.h: Minor tweaks. * include/tr1/wctype.h: Likewise. * include/tr1/wchar.h: Likewise. * include/tr1/inttypes.h: Likewise. * include/tr1/tgmath.h: Likewise. * include/tr1/cstdbool: Likewise. * include/tr1/cfloat: Likewise. * include/tr1/ccomplex: Likewise. * include/tr1/ctime: Likewise. * include/tr1/climits: Likewise. * include/tr1/ctgmath: Likewise. * include/tr1/cstdarg: Likewise. * testsuite/tr1/headers.cc: Move... * testsuite/tr1/headers/all.cc: ... here. * testsuite/tr1/using_namespace_std_tr1.cc: Move... * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: ... here. * testsuite/tr1/headers/using_namespace_std_tr1.cc ... here. * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: New. * testsuite/20_util/tuple/requirements/explicit_instantiation.cc: Adjust namespace. * testsuite/20_util/has_nothrow_copy_constructor/value.cc: Adjust to the C++0x requirements. * testsuite/20_util/has_nothrow_default_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_default_constructor/value.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust dg-error lines. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc: Un-xfail. * testsuite/20_util/is_signed/value.cc: New. * testsuite/20_util/is_signed/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_signed/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_unsigned/value.cc: Likewise.. * testsuite/20_util/is_unsigned/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc: Likewise. * include/Makefile.am: Adjust. * include/Makefile.in: Regenerate. From-SVN: r125244
2007-06-01 01:37:56 +02:00
// functional_hash.h header -*- C++ -*-
// Copyright (C) 2007-2014 Free Software Foundation, Inc.
re PR libstdc++/31426 (TR1 includes do not work with -std=c++0x) 2007-05-31 Paolo Carlini <pcarlini@suse.de> PR libstdc++/31426 * include/bits/c++config: Remove namespace association bits from tr1 to std. * include/ext/type_traits.h (__promote, __promote2, __promote3, __promote4): Add. * include/bits/hashtable.h: New. * include/bits/functional_hash.h: Likewise. * include/tr1/hashtable.h: Likewise. * include/tr1_impl/random: New. * include/tr1_impl/cinttypes: Likewise. * include/tr1_impl/cstdlib: Likewise. * include/tr1_impl/unordered_map: Likewise. * include/tr1_impl/cstdio: Likewise. * include/tr1_impl/boost_shared_ptr.h: Likewise. * include/tr1_impl/cctype: Likewise. * include/tr1_impl/random.tcc: Likewise. * include/tr1_impl/tuple: Likewise. * include/tr1_impl/functional_hash.h: Likewise. * include/tr1_impl/hashtable: Likewise. * include/tr1_impl/cmath: Likewise. * include/tr1_impl/type_traitsfwd.h: Likewise. * include/tr1_impl/hashtable_policy.h: Likewise. * include/tr1_impl/cfenv: Likewise. * include/tr1_impl/unordered_set: Likewise. * include/tr1_impl/functional: Likewise. * include/tr1_impl/utility: Likewise. * include/tr1_impl/complex: Likewise. * include/tr1_impl/type_traits: Likewise. * include/tr1_impl/cwchar: Likewise. * include/tr1_impl/cstdint: Likewise. * include/tr1_impl/regex: Likewise. * include/tr1_impl/array: Likewise. * include/tr1_impl/cwctype: Likewise. * include/tr1/type_traitsfwd.h: Remove. * include/tr1/boost_shared_ptr.h: Likewise. * include/tr1/common.h: Likewise. * include/tr1/hashtable: Likewise. * include/tr1/hashtable_policy.h: Likewise. * include/tr1/random.tcc: Likewise. * include/c_global/cinttypes: Include tr1_impl/cinttypes. * include/c_global/cstdlib: Likewise for cstdlib. * include/c_global/cstdio: Likewise for cstdio. * include/c_global/cctype: Likewise for cctype. * include/c_global/cmath: Likewise for cmath. * include/c_global/cfenv: Likewise for cfenv. * include/c_global/cwchar: Likewise for cwchar. * include/c_global/cstdint: Likewise for cstdint. * include/c_global/cwctype: Likewise for cwctype. * include/tr1/cinttypes: Likewise for cinttypes. * include/tr1/cstdlib: Likewise for cstdlib. * include/tr1/cstdio: Likewise for cstdio. * include/tr1/cctype: Likewise for cctype. * include/tr1/cmath: Likewise for cmath. * include/tr1/cfenv: Likewise for cfenv. * include/tr1/cwchar: Likewise for cwchar. * include/tr1/cstdint: Likewise for cstdint. * include/tr1/cwctype: Likewise for cwctype. * include/tr1/functional_hash.h: Likewise for functional_hash. * include/std/tuple: Include tr1_impl/tuple. * include/std/utility: Likewise for utility. * include/std/type_traits: Likewise for type_traits. (is_pod): Just forward to __is_pod. (has_trivial_default_constructor): Just forward to __has_trivial_constructor. (has_trivial_copy_constructor): Just forward to __has_trivial_copy. (has_trivial_assign): Just forward to __has_trivial_assign. (has_trivial_destructor): Just forward to __has_trivial_destructor. (has_nothrow_default_constructor): Just forward to __has_nothrow_constructor. (has_nothrow_copy_constructor): Just forward to __has_nothrow_copy. (has_nothrow_assign): Just forward to __has_nothrow_assign. (is_base_of): Just forward to __is_base_of. (is_signed, is_unsigned): Implement according to the C++0x specifications. * include/std/memory: Likewise for memory. * include/std/regex: Likewise for regex. * include/std/random: Likewise for random. * include/std/unordered_map: Likewise for unordered_map. * include/std/unordered_set: Likewise for unordered_set. * include/std/functional: Likewise for functional. * include/std/complex: Likewise for complex. * include/std/array: Likewise for array. * include/tr1/tuple: Likewise for tuple. * include/tr1/utility: Likewise for utility. * include/tr1/type_traits: Likewise for type_traits * include/tr1/memory: Likewise for memory. * include/tr1/regex: Likewise for regex. * include/tr1/random: Likewise for random. * include/tr1/unordered_map: Likewise for unordered_map. * include/tr1/unordered_set: Likewise for unordered_set. * include/tr1/functional: Likewise for functional. * include/tr1/complex: Likewise for complex. * include/tr1/array: Likewise for array. * include/c_global/ctgmath: Tweak. * include/c_global/cstdarg: Likewise. * include/c_global/ctime: Likewise. * include/c_global/climits: Likewise. * include/c_global/cfloat: Likewise. * include/c_global/ccomplex: Likewise. * include/c_global/cstdbool: Likewise. * include/tr1/poly_laguerre.tcc: Tweak, don't use _GLIBCXX_TR1. * include/tr1/riemann_zeta.tcc: Likewise. * include/tr1/beta_function.tcc: Likewise. * include/tr1/exp_integral.tcc: Likewise. * include/tr1/hypergeometric.tcc: Likewise. * include/tr1/modified_bessel_func.tcc: Likewise. * include/tr1/legendre_function.tcc: Likewise. * include/tr1/special_function_util.h: Likewise. * include/tr1/bessel_function.tcc: Likewise. * include/tr1/poly_hermite.tcc: Likewise. * include/tr1/ell_integral.tcc: Likewise. * include/tr1/gamma.tcc: Likewise. * include/tr1/stdlib.h: Likewise. * include/tr1/math.h: Likewise. * include/tr1/complex.h: Minor tweaks. * include/tr1/wctype.h: Likewise. * include/tr1/wchar.h: Likewise. * include/tr1/inttypes.h: Likewise. * include/tr1/tgmath.h: Likewise. * include/tr1/cstdbool: Likewise. * include/tr1/cfloat: Likewise. * include/tr1/ccomplex: Likewise. * include/tr1/ctime: Likewise. * include/tr1/climits: Likewise. * include/tr1/ctgmath: Likewise. * include/tr1/cstdarg: Likewise. * testsuite/tr1/headers.cc: Move... * testsuite/tr1/headers/all.cc: ... here. * testsuite/tr1/using_namespace_std_tr1.cc: Move... * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: ... here. * testsuite/tr1/headers/using_namespace_std_tr1.cc ... here. * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: New. * testsuite/20_util/tuple/requirements/explicit_instantiation.cc: Adjust namespace. * testsuite/20_util/has_nothrow_copy_constructor/value.cc: Adjust to the C++0x requirements. * testsuite/20_util/has_nothrow_default_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_default_constructor/value.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust dg-error lines. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc: Un-xfail. * testsuite/20_util/is_signed/value.cc: New. * testsuite/20_util/is_signed/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_signed/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_unsigned/value.cc: Likewise.. * testsuite/20_util/is_unsigned/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc: Likewise. * include/Makefile.am: Adjust. * include/Makefile.in: Regenerate. From-SVN: r125244
2007-06-01 01:37:56 +02:00
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
re PR libstdc++/31426 (TR1 includes do not work with -std=c++0x) 2007-05-31 Paolo Carlini <pcarlini@suse.de> PR libstdc++/31426 * include/bits/c++config: Remove namespace association bits from tr1 to std. * include/ext/type_traits.h (__promote, __promote2, __promote3, __promote4): Add. * include/bits/hashtable.h: New. * include/bits/functional_hash.h: Likewise. * include/tr1/hashtable.h: Likewise. * include/tr1_impl/random: New. * include/tr1_impl/cinttypes: Likewise. * include/tr1_impl/cstdlib: Likewise. * include/tr1_impl/unordered_map: Likewise. * include/tr1_impl/cstdio: Likewise. * include/tr1_impl/boost_shared_ptr.h: Likewise. * include/tr1_impl/cctype: Likewise. * include/tr1_impl/random.tcc: Likewise. * include/tr1_impl/tuple: Likewise. * include/tr1_impl/functional_hash.h: Likewise. * include/tr1_impl/hashtable: Likewise. * include/tr1_impl/cmath: Likewise. * include/tr1_impl/type_traitsfwd.h: Likewise. * include/tr1_impl/hashtable_policy.h: Likewise. * include/tr1_impl/cfenv: Likewise. * include/tr1_impl/unordered_set: Likewise. * include/tr1_impl/functional: Likewise. * include/tr1_impl/utility: Likewise. * include/tr1_impl/complex: Likewise. * include/tr1_impl/type_traits: Likewise. * include/tr1_impl/cwchar: Likewise. * include/tr1_impl/cstdint: Likewise. * include/tr1_impl/regex: Likewise. * include/tr1_impl/array: Likewise. * include/tr1_impl/cwctype: Likewise. * include/tr1/type_traitsfwd.h: Remove. * include/tr1/boost_shared_ptr.h: Likewise. * include/tr1/common.h: Likewise. * include/tr1/hashtable: Likewise. * include/tr1/hashtable_policy.h: Likewise. * include/tr1/random.tcc: Likewise. * include/c_global/cinttypes: Include tr1_impl/cinttypes. * include/c_global/cstdlib: Likewise for cstdlib. * include/c_global/cstdio: Likewise for cstdio. * include/c_global/cctype: Likewise for cctype. * include/c_global/cmath: Likewise for cmath. * include/c_global/cfenv: Likewise for cfenv. * include/c_global/cwchar: Likewise for cwchar. * include/c_global/cstdint: Likewise for cstdint. * include/c_global/cwctype: Likewise for cwctype. * include/tr1/cinttypes: Likewise for cinttypes. * include/tr1/cstdlib: Likewise for cstdlib. * include/tr1/cstdio: Likewise for cstdio. * include/tr1/cctype: Likewise for cctype. * include/tr1/cmath: Likewise for cmath. * include/tr1/cfenv: Likewise for cfenv. * include/tr1/cwchar: Likewise for cwchar. * include/tr1/cstdint: Likewise for cstdint. * include/tr1/cwctype: Likewise for cwctype. * include/tr1/functional_hash.h: Likewise for functional_hash. * include/std/tuple: Include tr1_impl/tuple. * include/std/utility: Likewise for utility. * include/std/type_traits: Likewise for type_traits. (is_pod): Just forward to __is_pod. (has_trivial_default_constructor): Just forward to __has_trivial_constructor. (has_trivial_copy_constructor): Just forward to __has_trivial_copy. (has_trivial_assign): Just forward to __has_trivial_assign. (has_trivial_destructor): Just forward to __has_trivial_destructor. (has_nothrow_default_constructor): Just forward to __has_nothrow_constructor. (has_nothrow_copy_constructor): Just forward to __has_nothrow_copy. (has_nothrow_assign): Just forward to __has_nothrow_assign. (is_base_of): Just forward to __is_base_of. (is_signed, is_unsigned): Implement according to the C++0x specifications. * include/std/memory: Likewise for memory. * include/std/regex: Likewise for regex. * include/std/random: Likewise for random. * include/std/unordered_map: Likewise for unordered_map. * include/std/unordered_set: Likewise for unordered_set. * include/std/functional: Likewise for functional. * include/std/complex: Likewise for complex. * include/std/array: Likewise for array. * include/tr1/tuple: Likewise for tuple. * include/tr1/utility: Likewise for utility. * include/tr1/type_traits: Likewise for type_traits * include/tr1/memory: Likewise for memory. * include/tr1/regex: Likewise for regex. * include/tr1/random: Likewise for random. * include/tr1/unordered_map: Likewise for unordered_map. * include/tr1/unordered_set: Likewise for unordered_set. * include/tr1/functional: Likewise for functional. * include/tr1/complex: Likewise for complex. * include/tr1/array: Likewise for array. * include/c_global/ctgmath: Tweak. * include/c_global/cstdarg: Likewise. * include/c_global/ctime: Likewise. * include/c_global/climits: Likewise. * include/c_global/cfloat: Likewise. * include/c_global/ccomplex: Likewise. * include/c_global/cstdbool: Likewise. * include/tr1/poly_laguerre.tcc: Tweak, don't use _GLIBCXX_TR1. * include/tr1/riemann_zeta.tcc: Likewise. * include/tr1/beta_function.tcc: Likewise. * include/tr1/exp_integral.tcc: Likewise. * include/tr1/hypergeometric.tcc: Likewise. * include/tr1/modified_bessel_func.tcc: Likewise. * include/tr1/legendre_function.tcc: Likewise. * include/tr1/special_function_util.h: Likewise. * include/tr1/bessel_function.tcc: Likewise. * include/tr1/poly_hermite.tcc: Likewise. * include/tr1/ell_integral.tcc: Likewise. * include/tr1/gamma.tcc: Likewise. * include/tr1/stdlib.h: Likewise. * include/tr1/math.h: Likewise. * include/tr1/complex.h: Minor tweaks. * include/tr1/wctype.h: Likewise. * include/tr1/wchar.h: Likewise. * include/tr1/inttypes.h: Likewise. * include/tr1/tgmath.h: Likewise. * include/tr1/cstdbool: Likewise. * include/tr1/cfloat: Likewise. * include/tr1/ccomplex: Likewise. * include/tr1/ctime: Likewise. * include/tr1/climits: Likewise. * include/tr1/ctgmath: Likewise. * include/tr1/cstdarg: Likewise. * testsuite/tr1/headers.cc: Move... * testsuite/tr1/headers/all.cc: ... here. * testsuite/tr1/using_namespace_std_tr1.cc: Move... * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: ... here. * testsuite/tr1/headers/using_namespace_std_tr1.cc ... here. * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: New. * testsuite/20_util/tuple/requirements/explicit_instantiation.cc: Adjust namespace. * testsuite/20_util/has_nothrow_copy_constructor/value.cc: Adjust to the C++0x requirements. * testsuite/20_util/has_nothrow_default_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_default_constructor/value.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust dg-error lines. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc: Un-xfail. * testsuite/20_util/is_signed/value.cc: New. * testsuite/20_util/is_signed/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_signed/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_unsigned/value.cc: Likewise.. * testsuite/20_util/is_unsigned/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc: Likewise. * include/Makefile.am: Adjust. * include/Makefile.in: Regenerate. From-SVN: r125244
2007-06-01 01:37:56 +02:00
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.
re PR libstdc++/31426 (TR1 includes do not work with -std=c++0x) 2007-05-31 Paolo Carlini <pcarlini@suse.de> PR libstdc++/31426 * include/bits/c++config: Remove namespace association bits from tr1 to std. * include/ext/type_traits.h (__promote, __promote2, __promote3, __promote4): Add. * include/bits/hashtable.h: New. * include/bits/functional_hash.h: Likewise. * include/tr1/hashtable.h: Likewise. * include/tr1_impl/random: New. * include/tr1_impl/cinttypes: Likewise. * include/tr1_impl/cstdlib: Likewise. * include/tr1_impl/unordered_map: Likewise. * include/tr1_impl/cstdio: Likewise. * include/tr1_impl/boost_shared_ptr.h: Likewise. * include/tr1_impl/cctype: Likewise. * include/tr1_impl/random.tcc: Likewise. * include/tr1_impl/tuple: Likewise. * include/tr1_impl/functional_hash.h: Likewise. * include/tr1_impl/hashtable: Likewise. * include/tr1_impl/cmath: Likewise. * include/tr1_impl/type_traitsfwd.h: Likewise. * include/tr1_impl/hashtable_policy.h: Likewise. * include/tr1_impl/cfenv: Likewise. * include/tr1_impl/unordered_set: Likewise. * include/tr1_impl/functional: Likewise. * include/tr1_impl/utility: Likewise. * include/tr1_impl/complex: Likewise. * include/tr1_impl/type_traits: Likewise. * include/tr1_impl/cwchar: Likewise. * include/tr1_impl/cstdint: Likewise. * include/tr1_impl/regex: Likewise. * include/tr1_impl/array: Likewise. * include/tr1_impl/cwctype: Likewise. * include/tr1/type_traitsfwd.h: Remove. * include/tr1/boost_shared_ptr.h: Likewise. * include/tr1/common.h: Likewise. * include/tr1/hashtable: Likewise. * include/tr1/hashtable_policy.h: Likewise. * include/tr1/random.tcc: Likewise. * include/c_global/cinttypes: Include tr1_impl/cinttypes. * include/c_global/cstdlib: Likewise for cstdlib. * include/c_global/cstdio: Likewise for cstdio. * include/c_global/cctype: Likewise for cctype. * include/c_global/cmath: Likewise for cmath. * include/c_global/cfenv: Likewise for cfenv. * include/c_global/cwchar: Likewise for cwchar. * include/c_global/cstdint: Likewise for cstdint. * include/c_global/cwctype: Likewise for cwctype. * include/tr1/cinttypes: Likewise for cinttypes. * include/tr1/cstdlib: Likewise for cstdlib. * include/tr1/cstdio: Likewise for cstdio. * include/tr1/cctype: Likewise for cctype. * include/tr1/cmath: Likewise for cmath. * include/tr1/cfenv: Likewise for cfenv. * include/tr1/cwchar: Likewise for cwchar. * include/tr1/cstdint: Likewise for cstdint. * include/tr1/cwctype: Likewise for cwctype. * include/tr1/functional_hash.h: Likewise for functional_hash. * include/std/tuple: Include tr1_impl/tuple. * include/std/utility: Likewise for utility. * include/std/type_traits: Likewise for type_traits. (is_pod): Just forward to __is_pod. (has_trivial_default_constructor): Just forward to __has_trivial_constructor. (has_trivial_copy_constructor): Just forward to __has_trivial_copy. (has_trivial_assign): Just forward to __has_trivial_assign. (has_trivial_destructor): Just forward to __has_trivial_destructor. (has_nothrow_default_constructor): Just forward to __has_nothrow_constructor. (has_nothrow_copy_constructor): Just forward to __has_nothrow_copy. (has_nothrow_assign): Just forward to __has_nothrow_assign. (is_base_of): Just forward to __is_base_of. (is_signed, is_unsigned): Implement according to the C++0x specifications. * include/std/memory: Likewise for memory. * include/std/regex: Likewise for regex. * include/std/random: Likewise for random. * include/std/unordered_map: Likewise for unordered_map. * include/std/unordered_set: Likewise for unordered_set. * include/std/functional: Likewise for functional. * include/std/complex: Likewise for complex. * include/std/array: Likewise for array. * include/tr1/tuple: Likewise for tuple. * include/tr1/utility: Likewise for utility. * include/tr1/type_traits: Likewise for type_traits * include/tr1/memory: Likewise for memory. * include/tr1/regex: Likewise for regex. * include/tr1/random: Likewise for random. * include/tr1/unordered_map: Likewise for unordered_map. * include/tr1/unordered_set: Likewise for unordered_set. * include/tr1/functional: Likewise for functional. * include/tr1/complex: Likewise for complex. * include/tr1/array: Likewise for array. * include/c_global/ctgmath: Tweak. * include/c_global/cstdarg: Likewise. * include/c_global/ctime: Likewise. * include/c_global/climits: Likewise. * include/c_global/cfloat: Likewise. * include/c_global/ccomplex: Likewise. * include/c_global/cstdbool: Likewise. * include/tr1/poly_laguerre.tcc: Tweak, don't use _GLIBCXX_TR1. * include/tr1/riemann_zeta.tcc: Likewise. * include/tr1/beta_function.tcc: Likewise. * include/tr1/exp_integral.tcc: Likewise. * include/tr1/hypergeometric.tcc: Likewise. * include/tr1/modified_bessel_func.tcc: Likewise. * include/tr1/legendre_function.tcc: Likewise. * include/tr1/special_function_util.h: Likewise. * include/tr1/bessel_function.tcc: Likewise. * include/tr1/poly_hermite.tcc: Likewise. * include/tr1/ell_integral.tcc: Likewise. * include/tr1/gamma.tcc: Likewise. * include/tr1/stdlib.h: Likewise. * include/tr1/math.h: Likewise. * include/tr1/complex.h: Minor tweaks. * include/tr1/wctype.h: Likewise. * include/tr1/wchar.h: Likewise. * include/tr1/inttypes.h: Likewise. * include/tr1/tgmath.h: Likewise. * include/tr1/cstdbool: Likewise. * include/tr1/cfloat: Likewise. * include/tr1/ccomplex: Likewise. * include/tr1/ctime: Likewise. * include/tr1/climits: Likewise. * include/tr1/ctgmath: Likewise. * include/tr1/cstdarg: Likewise. * testsuite/tr1/headers.cc: Move... * testsuite/tr1/headers/all.cc: ... here. * testsuite/tr1/using_namespace_std_tr1.cc: Move... * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: ... here. * testsuite/tr1/headers/using_namespace_std_tr1.cc ... here. * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: New. * testsuite/20_util/tuple/requirements/explicit_instantiation.cc: Adjust namespace. * testsuite/20_util/has_nothrow_copy_constructor/value.cc: Adjust to the C++0x requirements. * testsuite/20_util/has_nothrow_default_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_default_constructor/value.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust dg-error lines. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc: Un-xfail. * testsuite/20_util/is_signed/value.cc: New. * testsuite/20_util/is_signed/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_signed/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_unsigned/value.cc: Likewise.. * testsuite/20_util/is_unsigned/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc: Likewise. * include/Makefile.am: Adjust. * include/Makefile.in: Regenerate. From-SVN: r125244
2007-06-01 01:37:56 +02:00
// You should have received a copy of the GNU General Public License and
// a copy of the GCC Runtime Library Exception along with this program;
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
// <http://www.gnu.org/licenses/>.
re PR libstdc++/31426 (TR1 includes do not work with -std=c++0x) 2007-05-31 Paolo Carlini <pcarlini@suse.de> PR libstdc++/31426 * include/bits/c++config: Remove namespace association bits from tr1 to std. * include/ext/type_traits.h (__promote, __promote2, __promote3, __promote4): Add. * include/bits/hashtable.h: New. * include/bits/functional_hash.h: Likewise. * include/tr1/hashtable.h: Likewise. * include/tr1_impl/random: New. * include/tr1_impl/cinttypes: Likewise. * include/tr1_impl/cstdlib: Likewise. * include/tr1_impl/unordered_map: Likewise. * include/tr1_impl/cstdio: Likewise. * include/tr1_impl/boost_shared_ptr.h: Likewise. * include/tr1_impl/cctype: Likewise. * include/tr1_impl/random.tcc: Likewise. * include/tr1_impl/tuple: Likewise. * include/tr1_impl/functional_hash.h: Likewise. * include/tr1_impl/hashtable: Likewise. * include/tr1_impl/cmath: Likewise. * include/tr1_impl/type_traitsfwd.h: Likewise. * include/tr1_impl/hashtable_policy.h: Likewise. * include/tr1_impl/cfenv: Likewise. * include/tr1_impl/unordered_set: Likewise. * include/tr1_impl/functional: Likewise. * include/tr1_impl/utility: Likewise. * include/tr1_impl/complex: Likewise. * include/tr1_impl/type_traits: Likewise. * include/tr1_impl/cwchar: Likewise. * include/tr1_impl/cstdint: Likewise. * include/tr1_impl/regex: Likewise. * include/tr1_impl/array: Likewise. * include/tr1_impl/cwctype: Likewise. * include/tr1/type_traitsfwd.h: Remove. * include/tr1/boost_shared_ptr.h: Likewise. * include/tr1/common.h: Likewise. * include/tr1/hashtable: Likewise. * include/tr1/hashtable_policy.h: Likewise. * include/tr1/random.tcc: Likewise. * include/c_global/cinttypes: Include tr1_impl/cinttypes. * include/c_global/cstdlib: Likewise for cstdlib. * include/c_global/cstdio: Likewise for cstdio. * include/c_global/cctype: Likewise for cctype. * include/c_global/cmath: Likewise for cmath. * include/c_global/cfenv: Likewise for cfenv. * include/c_global/cwchar: Likewise for cwchar. * include/c_global/cstdint: Likewise for cstdint. * include/c_global/cwctype: Likewise for cwctype. * include/tr1/cinttypes: Likewise for cinttypes. * include/tr1/cstdlib: Likewise for cstdlib. * include/tr1/cstdio: Likewise for cstdio. * include/tr1/cctype: Likewise for cctype. * include/tr1/cmath: Likewise for cmath. * include/tr1/cfenv: Likewise for cfenv. * include/tr1/cwchar: Likewise for cwchar. * include/tr1/cstdint: Likewise for cstdint. * include/tr1/cwctype: Likewise for cwctype. * include/tr1/functional_hash.h: Likewise for functional_hash. * include/std/tuple: Include tr1_impl/tuple. * include/std/utility: Likewise for utility. * include/std/type_traits: Likewise for type_traits. (is_pod): Just forward to __is_pod. (has_trivial_default_constructor): Just forward to __has_trivial_constructor. (has_trivial_copy_constructor): Just forward to __has_trivial_copy. (has_trivial_assign): Just forward to __has_trivial_assign. (has_trivial_destructor): Just forward to __has_trivial_destructor. (has_nothrow_default_constructor): Just forward to __has_nothrow_constructor. (has_nothrow_copy_constructor): Just forward to __has_nothrow_copy. (has_nothrow_assign): Just forward to __has_nothrow_assign. (is_base_of): Just forward to __is_base_of. (is_signed, is_unsigned): Implement according to the C++0x specifications. * include/std/memory: Likewise for memory. * include/std/regex: Likewise for regex. * include/std/random: Likewise for random. * include/std/unordered_map: Likewise for unordered_map. * include/std/unordered_set: Likewise for unordered_set. * include/std/functional: Likewise for functional. * include/std/complex: Likewise for complex. * include/std/array: Likewise for array. * include/tr1/tuple: Likewise for tuple. * include/tr1/utility: Likewise for utility. * include/tr1/type_traits: Likewise for type_traits * include/tr1/memory: Likewise for memory. * include/tr1/regex: Likewise for regex. * include/tr1/random: Likewise for random. * include/tr1/unordered_map: Likewise for unordered_map. * include/tr1/unordered_set: Likewise for unordered_set. * include/tr1/functional: Likewise for functional. * include/tr1/complex: Likewise for complex. * include/tr1/array: Likewise for array. * include/c_global/ctgmath: Tweak. * include/c_global/cstdarg: Likewise. * include/c_global/ctime: Likewise. * include/c_global/climits: Likewise. * include/c_global/cfloat: Likewise. * include/c_global/ccomplex: Likewise. * include/c_global/cstdbool: Likewise. * include/tr1/poly_laguerre.tcc: Tweak, don't use _GLIBCXX_TR1. * include/tr1/riemann_zeta.tcc: Likewise. * include/tr1/beta_function.tcc: Likewise. * include/tr1/exp_integral.tcc: Likewise. * include/tr1/hypergeometric.tcc: Likewise. * include/tr1/modified_bessel_func.tcc: Likewise. * include/tr1/legendre_function.tcc: Likewise. * include/tr1/special_function_util.h: Likewise. * include/tr1/bessel_function.tcc: Likewise. * include/tr1/poly_hermite.tcc: Likewise. * include/tr1/ell_integral.tcc: Likewise. * include/tr1/gamma.tcc: Likewise. * include/tr1/stdlib.h: Likewise. * include/tr1/math.h: Likewise. * include/tr1/complex.h: Minor tweaks. * include/tr1/wctype.h: Likewise. * include/tr1/wchar.h: Likewise. * include/tr1/inttypes.h: Likewise. * include/tr1/tgmath.h: Likewise. * include/tr1/cstdbool: Likewise. * include/tr1/cfloat: Likewise. * include/tr1/ccomplex: Likewise. * include/tr1/ctime: Likewise. * include/tr1/climits: Likewise. * include/tr1/ctgmath: Likewise. * include/tr1/cstdarg: Likewise. * testsuite/tr1/headers.cc: Move... * testsuite/tr1/headers/all.cc: ... here. * testsuite/tr1/using_namespace_std_tr1.cc: Move... * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: ... here. * testsuite/tr1/headers/using_namespace_std_tr1.cc ... here. * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: New. * testsuite/20_util/tuple/requirements/explicit_instantiation.cc: Adjust namespace. * testsuite/20_util/has_nothrow_copy_constructor/value.cc: Adjust to the C++0x requirements. * testsuite/20_util/has_nothrow_default_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_default_constructor/value.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust dg-error lines. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc: Un-xfail. * testsuite/20_util/is_signed/value.cc: New. * testsuite/20_util/is_signed/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_signed/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_unsigned/value.cc: Likewise.. * testsuite/20_util/is_unsigned/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc: Likewise. * include/Makefile.am: Adjust. * include/Makefile.in: Regenerate. From-SVN: r125244
2007-06-01 01:37:56 +02:00
/** @file bits/functional_hash.h
re PR libstdc++/31426 (TR1 includes do not work with -std=c++0x) 2007-05-31 Paolo Carlini <pcarlini@suse.de> PR libstdc++/31426 * include/bits/c++config: Remove namespace association bits from tr1 to std. * include/ext/type_traits.h (__promote, __promote2, __promote3, __promote4): Add. * include/bits/hashtable.h: New. * include/bits/functional_hash.h: Likewise. * include/tr1/hashtable.h: Likewise. * include/tr1_impl/random: New. * include/tr1_impl/cinttypes: Likewise. * include/tr1_impl/cstdlib: Likewise. * include/tr1_impl/unordered_map: Likewise. * include/tr1_impl/cstdio: Likewise. * include/tr1_impl/boost_shared_ptr.h: Likewise. * include/tr1_impl/cctype: Likewise. * include/tr1_impl/random.tcc: Likewise. * include/tr1_impl/tuple: Likewise. * include/tr1_impl/functional_hash.h: Likewise. * include/tr1_impl/hashtable: Likewise. * include/tr1_impl/cmath: Likewise. * include/tr1_impl/type_traitsfwd.h: Likewise. * include/tr1_impl/hashtable_policy.h: Likewise. * include/tr1_impl/cfenv: Likewise. * include/tr1_impl/unordered_set: Likewise. * include/tr1_impl/functional: Likewise. * include/tr1_impl/utility: Likewise. * include/tr1_impl/complex: Likewise. * include/tr1_impl/type_traits: Likewise. * include/tr1_impl/cwchar: Likewise. * include/tr1_impl/cstdint: Likewise. * include/tr1_impl/regex: Likewise. * include/tr1_impl/array: Likewise. * include/tr1_impl/cwctype: Likewise. * include/tr1/type_traitsfwd.h: Remove. * include/tr1/boost_shared_ptr.h: Likewise. * include/tr1/common.h: Likewise. * include/tr1/hashtable: Likewise. * include/tr1/hashtable_policy.h: Likewise. * include/tr1/random.tcc: Likewise. * include/c_global/cinttypes: Include tr1_impl/cinttypes. * include/c_global/cstdlib: Likewise for cstdlib. * include/c_global/cstdio: Likewise for cstdio. * include/c_global/cctype: Likewise for cctype. * include/c_global/cmath: Likewise for cmath. * include/c_global/cfenv: Likewise for cfenv. * include/c_global/cwchar: Likewise for cwchar. * include/c_global/cstdint: Likewise for cstdint. * include/c_global/cwctype: Likewise for cwctype. * include/tr1/cinttypes: Likewise for cinttypes. * include/tr1/cstdlib: Likewise for cstdlib. * include/tr1/cstdio: Likewise for cstdio. * include/tr1/cctype: Likewise for cctype. * include/tr1/cmath: Likewise for cmath. * include/tr1/cfenv: Likewise for cfenv. * include/tr1/cwchar: Likewise for cwchar. * include/tr1/cstdint: Likewise for cstdint. * include/tr1/cwctype: Likewise for cwctype. * include/tr1/functional_hash.h: Likewise for functional_hash. * include/std/tuple: Include tr1_impl/tuple. * include/std/utility: Likewise for utility. * include/std/type_traits: Likewise for type_traits. (is_pod): Just forward to __is_pod. (has_trivial_default_constructor): Just forward to __has_trivial_constructor. (has_trivial_copy_constructor): Just forward to __has_trivial_copy. (has_trivial_assign): Just forward to __has_trivial_assign. (has_trivial_destructor): Just forward to __has_trivial_destructor. (has_nothrow_default_constructor): Just forward to __has_nothrow_constructor. (has_nothrow_copy_constructor): Just forward to __has_nothrow_copy. (has_nothrow_assign): Just forward to __has_nothrow_assign. (is_base_of): Just forward to __is_base_of. (is_signed, is_unsigned): Implement according to the C++0x specifications. * include/std/memory: Likewise for memory. * include/std/regex: Likewise for regex. * include/std/random: Likewise for random. * include/std/unordered_map: Likewise for unordered_map. * include/std/unordered_set: Likewise for unordered_set. * include/std/functional: Likewise for functional. * include/std/complex: Likewise for complex. * include/std/array: Likewise for array. * include/tr1/tuple: Likewise for tuple. * include/tr1/utility: Likewise for utility. * include/tr1/type_traits: Likewise for type_traits * include/tr1/memory: Likewise for memory. * include/tr1/regex: Likewise for regex. * include/tr1/random: Likewise for random. * include/tr1/unordered_map: Likewise for unordered_map. * include/tr1/unordered_set: Likewise for unordered_set. * include/tr1/functional: Likewise for functional. * include/tr1/complex: Likewise for complex. * include/tr1/array: Likewise for array. * include/c_global/ctgmath: Tweak. * include/c_global/cstdarg: Likewise. * include/c_global/ctime: Likewise. * include/c_global/climits: Likewise. * include/c_global/cfloat: Likewise. * include/c_global/ccomplex: Likewise. * include/c_global/cstdbool: Likewise. * include/tr1/poly_laguerre.tcc: Tweak, don't use _GLIBCXX_TR1. * include/tr1/riemann_zeta.tcc: Likewise. * include/tr1/beta_function.tcc: Likewise. * include/tr1/exp_integral.tcc: Likewise. * include/tr1/hypergeometric.tcc: Likewise. * include/tr1/modified_bessel_func.tcc: Likewise. * include/tr1/legendre_function.tcc: Likewise. * include/tr1/special_function_util.h: Likewise. * include/tr1/bessel_function.tcc: Likewise. * include/tr1/poly_hermite.tcc: Likewise. * include/tr1/ell_integral.tcc: Likewise. * include/tr1/gamma.tcc: Likewise. * include/tr1/stdlib.h: Likewise. * include/tr1/math.h: Likewise. * include/tr1/complex.h: Minor tweaks. * include/tr1/wctype.h: Likewise. * include/tr1/wchar.h: Likewise. * include/tr1/inttypes.h: Likewise. * include/tr1/tgmath.h: Likewise. * include/tr1/cstdbool: Likewise. * include/tr1/cfloat: Likewise. * include/tr1/ccomplex: Likewise. * include/tr1/ctime: Likewise. * include/tr1/climits: Likewise. * include/tr1/ctgmath: Likewise. * include/tr1/cstdarg: Likewise. * testsuite/tr1/headers.cc: Move... * testsuite/tr1/headers/all.cc: ... here. * testsuite/tr1/using_namespace_std_tr1.cc: Move... * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: ... here. * testsuite/tr1/headers/using_namespace_std_tr1.cc ... here. * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: New. * testsuite/20_util/tuple/requirements/explicit_instantiation.cc: Adjust namespace. * testsuite/20_util/has_nothrow_copy_constructor/value.cc: Adjust to the C++0x requirements. * testsuite/20_util/has_nothrow_default_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_default_constructor/value.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust dg-error lines. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc: Un-xfail. * testsuite/20_util/is_signed/value.cc: New. * testsuite/20_util/is_signed/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_signed/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_unsigned/value.cc: Likewise.. * testsuite/20_util/is_unsigned/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc: Likewise. * include/Makefile.am: Adjust. * include/Makefile.in: Regenerate. From-SVN: r125244
2007-06-01 01:37:56 +02:00
* This is an internal header file, included by other library headers.
* Do not attempt to use it directly. @headername{functional}
re PR libstdc++/31426 (TR1 includes do not work with -std=c++0x) 2007-05-31 Paolo Carlini <pcarlini@suse.de> PR libstdc++/31426 * include/bits/c++config: Remove namespace association bits from tr1 to std. * include/ext/type_traits.h (__promote, __promote2, __promote3, __promote4): Add. * include/bits/hashtable.h: New. * include/bits/functional_hash.h: Likewise. * include/tr1/hashtable.h: Likewise. * include/tr1_impl/random: New. * include/tr1_impl/cinttypes: Likewise. * include/tr1_impl/cstdlib: Likewise. * include/tr1_impl/unordered_map: Likewise. * include/tr1_impl/cstdio: Likewise. * include/tr1_impl/boost_shared_ptr.h: Likewise. * include/tr1_impl/cctype: Likewise. * include/tr1_impl/random.tcc: Likewise. * include/tr1_impl/tuple: Likewise. * include/tr1_impl/functional_hash.h: Likewise. * include/tr1_impl/hashtable: Likewise. * include/tr1_impl/cmath: Likewise. * include/tr1_impl/type_traitsfwd.h: Likewise. * include/tr1_impl/hashtable_policy.h: Likewise. * include/tr1_impl/cfenv: Likewise. * include/tr1_impl/unordered_set: Likewise. * include/tr1_impl/functional: Likewise. * include/tr1_impl/utility: Likewise. * include/tr1_impl/complex: Likewise. * include/tr1_impl/type_traits: Likewise. * include/tr1_impl/cwchar: Likewise. * include/tr1_impl/cstdint: Likewise. * include/tr1_impl/regex: Likewise. * include/tr1_impl/array: Likewise. * include/tr1_impl/cwctype: Likewise. * include/tr1/type_traitsfwd.h: Remove. * include/tr1/boost_shared_ptr.h: Likewise. * include/tr1/common.h: Likewise. * include/tr1/hashtable: Likewise. * include/tr1/hashtable_policy.h: Likewise. * include/tr1/random.tcc: Likewise. * include/c_global/cinttypes: Include tr1_impl/cinttypes. * include/c_global/cstdlib: Likewise for cstdlib. * include/c_global/cstdio: Likewise for cstdio. * include/c_global/cctype: Likewise for cctype. * include/c_global/cmath: Likewise for cmath. * include/c_global/cfenv: Likewise for cfenv. * include/c_global/cwchar: Likewise for cwchar. * include/c_global/cstdint: Likewise for cstdint. * include/c_global/cwctype: Likewise for cwctype. * include/tr1/cinttypes: Likewise for cinttypes. * include/tr1/cstdlib: Likewise for cstdlib. * include/tr1/cstdio: Likewise for cstdio. * include/tr1/cctype: Likewise for cctype. * include/tr1/cmath: Likewise for cmath. * include/tr1/cfenv: Likewise for cfenv. * include/tr1/cwchar: Likewise for cwchar. * include/tr1/cstdint: Likewise for cstdint. * include/tr1/cwctype: Likewise for cwctype. * include/tr1/functional_hash.h: Likewise for functional_hash. * include/std/tuple: Include tr1_impl/tuple. * include/std/utility: Likewise for utility. * include/std/type_traits: Likewise for type_traits. (is_pod): Just forward to __is_pod. (has_trivial_default_constructor): Just forward to __has_trivial_constructor. (has_trivial_copy_constructor): Just forward to __has_trivial_copy. (has_trivial_assign): Just forward to __has_trivial_assign. (has_trivial_destructor): Just forward to __has_trivial_destructor. (has_nothrow_default_constructor): Just forward to __has_nothrow_constructor. (has_nothrow_copy_constructor): Just forward to __has_nothrow_copy. (has_nothrow_assign): Just forward to __has_nothrow_assign. (is_base_of): Just forward to __is_base_of. (is_signed, is_unsigned): Implement according to the C++0x specifications. * include/std/memory: Likewise for memory. * include/std/regex: Likewise for regex. * include/std/random: Likewise for random. * include/std/unordered_map: Likewise for unordered_map. * include/std/unordered_set: Likewise for unordered_set. * include/std/functional: Likewise for functional. * include/std/complex: Likewise for complex. * include/std/array: Likewise for array. * include/tr1/tuple: Likewise for tuple. * include/tr1/utility: Likewise for utility. * include/tr1/type_traits: Likewise for type_traits * include/tr1/memory: Likewise for memory. * include/tr1/regex: Likewise for regex. * include/tr1/random: Likewise for random. * include/tr1/unordered_map: Likewise for unordered_map. * include/tr1/unordered_set: Likewise for unordered_set. * include/tr1/functional: Likewise for functional. * include/tr1/complex: Likewise for complex. * include/tr1/array: Likewise for array. * include/c_global/ctgmath: Tweak. * include/c_global/cstdarg: Likewise. * include/c_global/ctime: Likewise. * include/c_global/climits: Likewise. * include/c_global/cfloat: Likewise. * include/c_global/ccomplex: Likewise. * include/c_global/cstdbool: Likewise. * include/tr1/poly_laguerre.tcc: Tweak, don't use _GLIBCXX_TR1. * include/tr1/riemann_zeta.tcc: Likewise. * include/tr1/beta_function.tcc: Likewise. * include/tr1/exp_integral.tcc: Likewise. * include/tr1/hypergeometric.tcc: Likewise. * include/tr1/modified_bessel_func.tcc: Likewise. * include/tr1/legendre_function.tcc: Likewise. * include/tr1/special_function_util.h: Likewise. * include/tr1/bessel_function.tcc: Likewise. * include/tr1/poly_hermite.tcc: Likewise. * include/tr1/ell_integral.tcc: Likewise. * include/tr1/gamma.tcc: Likewise. * include/tr1/stdlib.h: Likewise. * include/tr1/math.h: Likewise. * include/tr1/complex.h: Minor tweaks. * include/tr1/wctype.h: Likewise. * include/tr1/wchar.h: Likewise. * include/tr1/inttypes.h: Likewise. * include/tr1/tgmath.h: Likewise. * include/tr1/cstdbool: Likewise. * include/tr1/cfloat: Likewise. * include/tr1/ccomplex: Likewise. * include/tr1/ctime: Likewise. * include/tr1/climits: Likewise. * include/tr1/ctgmath: Likewise. * include/tr1/cstdarg: Likewise. * testsuite/tr1/headers.cc: Move... * testsuite/tr1/headers/all.cc: ... here. * testsuite/tr1/using_namespace_std_tr1.cc: Move... * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: ... here. * testsuite/tr1/headers/using_namespace_std_tr1.cc ... here. * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: New. * testsuite/20_util/tuple/requirements/explicit_instantiation.cc: Adjust namespace. * testsuite/20_util/has_nothrow_copy_constructor/value.cc: Adjust to the C++0x requirements. * testsuite/20_util/has_nothrow_default_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_default_constructor/value.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust dg-error lines. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc: Un-xfail. * testsuite/20_util/is_signed/value.cc: New. * testsuite/20_util/is_signed/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_signed/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_unsigned/value.cc: Likewise.. * testsuite/20_util/is_unsigned/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc: Likewise. * include/Makefile.am: Adjust. * include/Makefile.in: Regenerate. From-SVN: r125244
2007-06-01 01:37:56 +02:00
*/
#ifndef _FUNCTIONAL_HASH_H
#define _FUNCTIONAL_HASH_H 1
#pragma GCC system_header
re PR libstdc++/36104 (gnu-versioned-namespace is broken) 2011-01-14 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/36104 * include/Makefile.am (bits_sup_headers, stamp-bits-sup): New. * include/Makefile.in: Regenerate. * libsupc++/Makefile.am (std_HEADERS, bits_HEADERS): New. (install-stdHEADERS, install-bitsHEADERS): New. * libsupc++/Makefile.in: Regenerate. * include/bits/c++config: Update for inline namespaces. * libsupc++/cxxabi-forced.h: To... * libsupc++/cxxabi_forced.h: ...this. * libsupc++/hash_bytes.h: Separate file. * libsupc++/typeinfo: Use it. * libsupc++/exception: Adjust for bits subdirectory. * libsupc++/eh_aux_runtime.cc: Same. * libsupc++/eh_ptr.cc: Same. * libsupc++/new_op.cc: Same. * libsupc++/exception_defines.h: Same. * libsupc++/nested_exception.h: Same. * libsupc++/eh_terminate.cc: Same. * libsupc++/vec.cc: Same. * libsupc++/vterminate.cc: Same. * libsupc++/exception_ptr.h: Same. * libsupc++/eh_personality.cc: Same. * libsupc++/eh_call.cc: Same. * libsupc++/new_opnt.cc: Same. * libsupc++/hash_bytes.cc: Same. * config/cpu/arm/cxxabi_tweaks.h: Same. * config/cpu/generic/cxxabi_tweaks.h: Same. * libsupc++/cxxabi.h: Same. Consolidate _GLIBCXX_NOTHROW defines. * include/std/bitset: Same. * include/ext/vstring.tcc: Same. * include/bits/hashtable.h: Same. * include/bits/functional_hash.h: Same. * include/bits/hashtable_policy.h: Same. * include/bits/basic_string.h: Same. * include/bits/istream.tcc: Same. * include/bits/ostream.tcc: Same. * include/bits/algorithmfwd.h: Same. * include/bits/basic_string.tcc: Same. * include/bits/ostream_insert.h: Same. * include/bits/fstream.tcc: Same. * include/bits/functexcept.h: Same. * doc/doxygen/user.cfg.in: Adjust names. * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust line numbers. From-SVN: r168831
2011-01-15 01:27:10 +01:00
#include <bits/hash_bytes.h>
PR libstdc++/36104 part four 2011-01-30 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/36104 part four * include/bits/c++config (_GLIBCXX_STD): Remove. (_GLIBCXX_STD_D, _GLIBCXX_PR): Now _GLIBCXX_STD_C. (_GLIBCXX_P): Now _GLIBCXX_STD_A. (_GLIBCXX_NAMESPACE_DEBUG, _GLIBCXX_NAMESPACE_PARALLEL, _GLIBCXX_NAMESPACE_PROFILE, _GLIBCXX_NAMESPACE_VERSION): Remove. (_GLIBCXX_INLINE_DEBUG, _GLIBCXX_INLINE_PARALLEL, _GLIBCXX_INLINE_PROFILE): Remove. (_GLIBCXX_BEGIN_NAMESPACE(X)): Remove. (_GLIBCXX_END_NAMESPACE): Remove. (_GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y)): Remove. (_GLIBCXX_END_NESTED_NAMESPACE): Remove. (_GLIBCXX_BEGIN_NAMESPACE_ALGO): Add. (_GLIBCXX_END_NAMESPACE_ALGO): Add. (_GLIBCXX_BEGIN_NAMESPACE_CONTAINER): Add. (_GLIBCXX_END_NAMESPACE_CONTAINER): Add. (_GLIBCXX_BEGIN_NAMESPACE_VERSION): Add. (_GLIBCXX_END_NAMESPACE_VERSION): Add. (_GLIBCXX_BEGIN_LDBL_NAMESPACE): To _GLIBCXX_BEGIN_NAMESPACE_LDBL. (_GLIBCXX_END_LDBL_NAMESPACE): To _GLIBCXX_END_NAMESPACE_LDBL. (_GLIBCXX_VISIBILITY_ATTR): Revert to _GLIBCXX_VISIBILITY. * include/*: Use new macros for namespace scope. * config/*: Same. * src/*: Same. * src/Makefile.am (sources): Remove debug_list.cc, add compatibility-debug_list-2.cc. (parallel_sources): Remove parallel_list.cc, add compatibility-parallel_list-2.cc. (compatibility-parallel_list-2.[o,lo]): New rule. * src/Makefile.in: Regenerate. * src/debug_list.cc: Remove. * src/parallel_list.cc: Remove. * src/compatibility-list-2.cc: New. * src/compatibility-debug_list-2.cc: New. * src/compatibility-parallel_list-2.cc: New. * doc/doxygen/user.cfg.in: Adjust macros. * testsuite/20_util/auto_ptr/assign_neg.cc: Adjust line numbers, macros. * testsuite/20_util/declval/requirements/1_neg.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same. * testsuite/20_util/forward/c_neg.cc: Same. * testsuite/20_util/forward/f_neg.cc: Same. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same. * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Same. * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Same. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Same. * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same. * testsuite/23_containers/forward_list/capacity/1.cc: Same. * testsuite/23_containers/forward_list/requirements/dr438/ assign_neg.cc: Same. * testsuite/23_containers/forward_list/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/forward_list/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/forward_list/requirements/dr438/ insert_neg.cc: Same. * testsuite/23_containers/list/capacity/29134.cc: Same. * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same. * testsuite/23_containers/vector/bool/capacity/29134.cc: Same. * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: Same. * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same. * testsuite/25_algorithms/sort/35588.cc: Same. * testsuite/27_io/ios_base/cons/assign_neg.cc: Same. * testsuite/27_io/ios_base/cons/copy_neg.cc: Same. * testsuite/ext/profile/mutex_extensions_neg.cc: Same. * testsuite/ext/profile/profiler_algos.cc: Same. * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Same. * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Same. * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Same. * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Same. * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Same. From-SVN: r169421
2011-01-30 23:39:36 +01:00
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
/** @defgroup hashes Hashes
* @ingroup functors
*
* Hashing functors taking a variable type and returning a @c std::size_t.
*
* @{
*/
template<typename _Result, typename _Arg>
struct __hash_base
{
typedef _Result result_type;
typedef _Arg argument_type;
};
/// Primary class template hash.
template<typename _Tp>
struct hash;
/// Partial specializations for pointer types.
template<typename _Tp>
struct hash<_Tp*> : public __hash_base<size_t, _Tp*>
{
size_t
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
operator()(_Tp* __p) const noexcept
{ return reinterpret_cast<size_t>(__p); }
};
// Explicit specializations for integer types.
#define _Cxx_hashtable_define_trivial_hash(_Tp) \
template<> \
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
struct hash<_Tp> : public __hash_base<size_t, _Tp> \
{ \
size_t \
operator()(_Tp __val) const noexcept \
{ return static_cast<size_t>(__val); } \
};
/// Explicit specialization for bool.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(bool)
/// Explicit specialization for char.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(char)
/// Explicit specialization for signed char.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(signed char)
/// Explicit specialization for unsigned char.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(unsigned char)
/// Explicit specialization for wchar_t.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(wchar_t)
/// Explicit specialization for char16_t.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(char16_t)
/// Explicit specialization for char32_t.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(char32_t)
/// Explicit specialization for short.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(short)
/// Explicit specialization for int.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(int)
/// Explicit specialization for long.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(long)
/// Explicit specialization for long long.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(long long)
/// Explicit specialization for unsigned short.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(unsigned short)
/// Explicit specialization for unsigned int.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(unsigned int)
/// Explicit specialization for unsigned long.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(unsigned long)
/// Explicit specialization for unsigned long long.
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
_Cxx_hashtable_define_trivial_hash(unsigned long long)
#undef _Cxx_hashtable_define_trivial_hash
struct _Hash_impl
{
static size_t
hash(const void* __ptr, size_t __clength,
size_t __seed = static_cast<size_t>(0xc70f6907UL))
{ return _Hash_bytes(__ptr, __clength, __seed); }
template<typename _Tp>
static size_t
hash(const _Tp& __val)
{ return hash(&__val, sizeof(__val)); }
template<typename _Tp>
static size_t
__hash_combine(const _Tp& __val, size_t __hash)
{ return hash(&__val, sizeof(__val), __hash); }
};
struct _Fnv_hash_impl
{
static size_t
hash(const void* __ptr, size_t __clength,
re PR libstdc++/36104 (gnu-versioned-namespace is broken) 2011-01-14 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/36104 * include/Makefile.am (bits_sup_headers, stamp-bits-sup): New. * include/Makefile.in: Regenerate. * libsupc++/Makefile.am (std_HEADERS, bits_HEADERS): New. (install-stdHEADERS, install-bitsHEADERS): New. * libsupc++/Makefile.in: Regenerate. * include/bits/c++config: Update for inline namespaces. * libsupc++/cxxabi-forced.h: To... * libsupc++/cxxabi_forced.h: ...this. * libsupc++/hash_bytes.h: Separate file. * libsupc++/typeinfo: Use it. * libsupc++/exception: Adjust for bits subdirectory. * libsupc++/eh_aux_runtime.cc: Same. * libsupc++/eh_ptr.cc: Same. * libsupc++/new_op.cc: Same. * libsupc++/exception_defines.h: Same. * libsupc++/nested_exception.h: Same. * libsupc++/eh_terminate.cc: Same. * libsupc++/vec.cc: Same. * libsupc++/vterminate.cc: Same. * libsupc++/exception_ptr.h: Same. * libsupc++/eh_personality.cc: Same. * libsupc++/eh_call.cc: Same. * libsupc++/new_opnt.cc: Same. * libsupc++/hash_bytes.cc: Same. * config/cpu/arm/cxxabi_tweaks.h: Same. * config/cpu/generic/cxxabi_tweaks.h: Same. * libsupc++/cxxabi.h: Same. Consolidate _GLIBCXX_NOTHROW defines. * include/std/bitset: Same. * include/ext/vstring.tcc: Same. * include/bits/hashtable.h: Same. * include/bits/functional_hash.h: Same. * include/bits/hashtable_policy.h: Same. * include/bits/basic_string.h: Same. * include/bits/istream.tcc: Same. * include/bits/ostream.tcc: Same. * include/bits/algorithmfwd.h: Same. * include/bits/basic_string.tcc: Same. * include/bits/ostream_insert.h: Same. * include/bits/fstream.tcc: Same. * include/bits/functexcept.h: Same. * doc/doxygen/user.cfg.in: Adjust names. * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust line numbers. From-SVN: r168831
2011-01-15 01:27:10 +01:00
size_t __seed = static_cast<size_t>(2166136261UL))
{ return _Fnv_hash_bytes(__ptr, __clength, __seed); }
template<typename _Tp>
static size_t
hash(const _Tp& __val)
{ return hash(&__val, sizeof(__val)); }
template<typename _Tp>
static size_t
__hash_combine(const _Tp& __val, size_t __hash)
{ return hash(&__val, sizeof(__val), __hash); }
};
/// Specialization for float.
template<>
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
struct hash<float> : public __hash_base<size_t, float>
{
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
size_t
operator()(float __val) const noexcept
{
// 0 and -0 both hash to zero.
return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0;
}
};
/// Specialization for double.
template<>
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
struct hash<double> : public __hash_base<size_t, double>
{
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
size_t
operator()(double __val) const noexcept
{
// 0 and -0 both hash to zero.
return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0;
}
};
re PR libstdc++/31426 (TR1 includes do not work with -std=c++0x) 2007-05-31 Paolo Carlini <pcarlini@suse.de> PR libstdc++/31426 * include/bits/c++config: Remove namespace association bits from tr1 to std. * include/ext/type_traits.h (__promote, __promote2, __promote3, __promote4): Add. * include/bits/hashtable.h: New. * include/bits/functional_hash.h: Likewise. * include/tr1/hashtable.h: Likewise. * include/tr1_impl/random: New. * include/tr1_impl/cinttypes: Likewise. * include/tr1_impl/cstdlib: Likewise. * include/tr1_impl/unordered_map: Likewise. * include/tr1_impl/cstdio: Likewise. * include/tr1_impl/boost_shared_ptr.h: Likewise. * include/tr1_impl/cctype: Likewise. * include/tr1_impl/random.tcc: Likewise. * include/tr1_impl/tuple: Likewise. * include/tr1_impl/functional_hash.h: Likewise. * include/tr1_impl/hashtable: Likewise. * include/tr1_impl/cmath: Likewise. * include/tr1_impl/type_traitsfwd.h: Likewise. * include/tr1_impl/hashtable_policy.h: Likewise. * include/tr1_impl/cfenv: Likewise. * include/tr1_impl/unordered_set: Likewise. * include/tr1_impl/functional: Likewise. * include/tr1_impl/utility: Likewise. * include/tr1_impl/complex: Likewise. * include/tr1_impl/type_traits: Likewise. * include/tr1_impl/cwchar: Likewise. * include/tr1_impl/cstdint: Likewise. * include/tr1_impl/regex: Likewise. * include/tr1_impl/array: Likewise. * include/tr1_impl/cwctype: Likewise. * include/tr1/type_traitsfwd.h: Remove. * include/tr1/boost_shared_ptr.h: Likewise. * include/tr1/common.h: Likewise. * include/tr1/hashtable: Likewise. * include/tr1/hashtable_policy.h: Likewise. * include/tr1/random.tcc: Likewise. * include/c_global/cinttypes: Include tr1_impl/cinttypes. * include/c_global/cstdlib: Likewise for cstdlib. * include/c_global/cstdio: Likewise for cstdio. * include/c_global/cctype: Likewise for cctype. * include/c_global/cmath: Likewise for cmath. * include/c_global/cfenv: Likewise for cfenv. * include/c_global/cwchar: Likewise for cwchar. * include/c_global/cstdint: Likewise for cstdint. * include/c_global/cwctype: Likewise for cwctype. * include/tr1/cinttypes: Likewise for cinttypes. * include/tr1/cstdlib: Likewise for cstdlib. * include/tr1/cstdio: Likewise for cstdio. * include/tr1/cctype: Likewise for cctype. * include/tr1/cmath: Likewise for cmath. * include/tr1/cfenv: Likewise for cfenv. * include/tr1/cwchar: Likewise for cwchar. * include/tr1/cstdint: Likewise for cstdint. * include/tr1/cwctype: Likewise for cwctype. * include/tr1/functional_hash.h: Likewise for functional_hash. * include/std/tuple: Include tr1_impl/tuple. * include/std/utility: Likewise for utility. * include/std/type_traits: Likewise for type_traits. (is_pod): Just forward to __is_pod. (has_trivial_default_constructor): Just forward to __has_trivial_constructor. (has_trivial_copy_constructor): Just forward to __has_trivial_copy. (has_trivial_assign): Just forward to __has_trivial_assign. (has_trivial_destructor): Just forward to __has_trivial_destructor. (has_nothrow_default_constructor): Just forward to __has_nothrow_constructor. (has_nothrow_copy_constructor): Just forward to __has_nothrow_copy. (has_nothrow_assign): Just forward to __has_nothrow_assign. (is_base_of): Just forward to __is_base_of. (is_signed, is_unsigned): Implement according to the C++0x specifications. * include/std/memory: Likewise for memory. * include/std/regex: Likewise for regex. * include/std/random: Likewise for random. * include/std/unordered_map: Likewise for unordered_map. * include/std/unordered_set: Likewise for unordered_set. * include/std/functional: Likewise for functional. * include/std/complex: Likewise for complex. * include/std/array: Likewise for array. * include/tr1/tuple: Likewise for tuple. * include/tr1/utility: Likewise for utility. * include/tr1/type_traits: Likewise for type_traits * include/tr1/memory: Likewise for memory. * include/tr1/regex: Likewise for regex. * include/tr1/random: Likewise for random. * include/tr1/unordered_map: Likewise for unordered_map. * include/tr1/unordered_set: Likewise for unordered_set. * include/tr1/functional: Likewise for functional. * include/tr1/complex: Likewise for complex. * include/tr1/array: Likewise for array. * include/c_global/ctgmath: Tweak. * include/c_global/cstdarg: Likewise. * include/c_global/ctime: Likewise. * include/c_global/climits: Likewise. * include/c_global/cfloat: Likewise. * include/c_global/ccomplex: Likewise. * include/c_global/cstdbool: Likewise. * include/tr1/poly_laguerre.tcc: Tweak, don't use _GLIBCXX_TR1. * include/tr1/riemann_zeta.tcc: Likewise. * include/tr1/beta_function.tcc: Likewise. * include/tr1/exp_integral.tcc: Likewise. * include/tr1/hypergeometric.tcc: Likewise. * include/tr1/modified_bessel_func.tcc: Likewise. * include/tr1/legendre_function.tcc: Likewise. * include/tr1/special_function_util.h: Likewise. * include/tr1/bessel_function.tcc: Likewise. * include/tr1/poly_hermite.tcc: Likewise. * include/tr1/ell_integral.tcc: Likewise. * include/tr1/gamma.tcc: Likewise. * include/tr1/stdlib.h: Likewise. * include/tr1/math.h: Likewise. * include/tr1/complex.h: Minor tweaks. * include/tr1/wctype.h: Likewise. * include/tr1/wchar.h: Likewise. * include/tr1/inttypes.h: Likewise. * include/tr1/tgmath.h: Likewise. * include/tr1/cstdbool: Likewise. * include/tr1/cfloat: Likewise. * include/tr1/ccomplex: Likewise. * include/tr1/ctime: Likewise. * include/tr1/climits: Likewise. * include/tr1/ctgmath: Likewise. * include/tr1/cstdarg: Likewise. * testsuite/tr1/headers.cc: Move... * testsuite/tr1/headers/all.cc: ... here. * testsuite/tr1/using_namespace_std_tr1.cc: Move... * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: ... here. * testsuite/tr1/headers/using_namespace_std_tr1.cc ... here. * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: New. * testsuite/20_util/tuple/requirements/explicit_instantiation.cc: Adjust namespace. * testsuite/20_util/has_nothrow_copy_constructor/value.cc: Adjust to the C++0x requirements. * testsuite/20_util/has_nothrow_default_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_default_constructor/value.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust dg-error lines. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc: Un-xfail. * testsuite/20_util/is_signed/value.cc: New. * testsuite/20_util/is_signed/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_signed/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_unsigned/value.cc: Likewise.. * testsuite/20_util/is_unsigned/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc: Likewise. * include/Makefile.am: Adjust. * include/Makefile.in: Regenerate. From-SVN: r125244
2007-06-01 01:37:56 +02:00
/// Specialization for long double.
template<>
hash-long-double-aux.cc: Rename to... 2011-11-18 Paolo Carlini <paolo.carlini@oracle.com> * src/hash-long-double-aux.cc: Rename to... * src/hash-long-double-tr1-aux.cc: ... this. * src/compatibility-ldbl.cc: Adjust. * src/hash_tr1.cc: Likewise. * src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc. * include/bits/functional_hash.h (hash<_Tp*>::operator(), specs for integer types, hash<float>::operator(), hash<double>::operator(), hash<long double>::operator()): Declare noexcept. * include/debug/bitset (hash<__debug::bitset>::operator()): Likewise. * include/debug/vector (hash<__debug::vector>::operator()): Likewise. * include/std/system_error (hash<error_code>::operator()): Likewise. * include/std/thread (hash<thread::id>::operator()): Likewise. * include/std/bitset (hash<bitset>::operator()): Likewise. * include/std/typeindex (hash<type_index>::operator()): Likewise. * include/profile/bitset (hash<__profile::vector>::operator()): Likewise. * include/profile/vector (hash<__profile::vector>::operator()): Likewise. * include/ext/vstring.h (hash<__vstring>::operator(), hash<__wvstring>::operator(), hash<__u16vstring>::operator(), hash<__u32vstring>::operator()): Likewise. * include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise. * include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()): Likewise. * include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise. * include/bits/basic_string.h (hash<string>::operator(), hash<wstring>::operator(), hash<u16string>::operator(), hash<u32string>::operator()): Likewise. * include/bits/vector.tcc (hash<vector>::operator()): Likewise. * include/bits/stl_bvector.h (hash<vector>::operator()): Likewise. * libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of throw(). From-SVN: r181473
2011-11-18 13:37:06 +01:00
struct hash<long double>
: public __hash_base<size_t, long double>
{
_GLIBCXX_PURE size_t
operator()(long double __val) const noexcept;
};
// @} group hashes
re PR libstdc++/36104 (gnu-versioned-namespace is broken) 2011-01-14 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/36104 * include/Makefile.am (bits_sup_headers, stamp-bits-sup): New. * include/Makefile.in: Regenerate. * libsupc++/Makefile.am (std_HEADERS, bits_HEADERS): New. (install-stdHEADERS, install-bitsHEADERS): New. * libsupc++/Makefile.in: Regenerate. * include/bits/c++config: Update for inline namespaces. * libsupc++/cxxabi-forced.h: To... * libsupc++/cxxabi_forced.h: ...this. * libsupc++/hash_bytes.h: Separate file. * libsupc++/typeinfo: Use it. * libsupc++/exception: Adjust for bits subdirectory. * libsupc++/eh_aux_runtime.cc: Same. * libsupc++/eh_ptr.cc: Same. * libsupc++/new_op.cc: Same. * libsupc++/exception_defines.h: Same. * libsupc++/nested_exception.h: Same. * libsupc++/eh_terminate.cc: Same. * libsupc++/vec.cc: Same. * libsupc++/vterminate.cc: Same. * libsupc++/exception_ptr.h: Same. * libsupc++/eh_personality.cc: Same. * libsupc++/eh_call.cc: Same. * libsupc++/new_opnt.cc: Same. * libsupc++/hash_bytes.cc: Same. * config/cpu/arm/cxxabi_tweaks.h: Same. * config/cpu/generic/cxxabi_tweaks.h: Same. * libsupc++/cxxabi.h: Same. Consolidate _GLIBCXX_NOTHROW defines. * include/std/bitset: Same. * include/ext/vstring.tcc: Same. * include/bits/hashtable.h: Same. * include/bits/functional_hash.h: Same. * include/bits/hashtable_policy.h: Same. * include/bits/basic_string.h: Same. * include/bits/istream.tcc: Same. * include/bits/ostream.tcc: Same. * include/bits/algorithmfwd.h: Same. * include/bits/basic_string.tcc: Same. * include/bits/ostream_insert.h: Same. * include/bits/fstream.tcc: Same. * include/bits/functexcept.h: Same. * doc/doxygen/user.cfg.in: Adjust names. * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust line numbers. From-SVN: r168831
2011-01-15 01:27:10 +01:00
// Hint about performance of hash functor. If not fast the hash based
// containers will cache the hash code.
// Default behavior is to consider that hasher are fast unless specified
// otherwise.
template<typename _Hash>
struct __is_fast_hash : public std::true_type
{ };
template<>
struct __is_fast_hash<hash<long double>> : public std::false_type
{ };
PR libstdc++/36104 part four 2011-01-30 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/36104 part four * include/bits/c++config (_GLIBCXX_STD): Remove. (_GLIBCXX_STD_D, _GLIBCXX_PR): Now _GLIBCXX_STD_C. (_GLIBCXX_P): Now _GLIBCXX_STD_A. (_GLIBCXX_NAMESPACE_DEBUG, _GLIBCXX_NAMESPACE_PARALLEL, _GLIBCXX_NAMESPACE_PROFILE, _GLIBCXX_NAMESPACE_VERSION): Remove. (_GLIBCXX_INLINE_DEBUG, _GLIBCXX_INLINE_PARALLEL, _GLIBCXX_INLINE_PROFILE): Remove. (_GLIBCXX_BEGIN_NAMESPACE(X)): Remove. (_GLIBCXX_END_NAMESPACE): Remove. (_GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y)): Remove. (_GLIBCXX_END_NESTED_NAMESPACE): Remove. (_GLIBCXX_BEGIN_NAMESPACE_ALGO): Add. (_GLIBCXX_END_NAMESPACE_ALGO): Add. (_GLIBCXX_BEGIN_NAMESPACE_CONTAINER): Add. (_GLIBCXX_END_NAMESPACE_CONTAINER): Add. (_GLIBCXX_BEGIN_NAMESPACE_VERSION): Add. (_GLIBCXX_END_NAMESPACE_VERSION): Add. (_GLIBCXX_BEGIN_LDBL_NAMESPACE): To _GLIBCXX_BEGIN_NAMESPACE_LDBL. (_GLIBCXX_END_LDBL_NAMESPACE): To _GLIBCXX_END_NAMESPACE_LDBL. (_GLIBCXX_VISIBILITY_ATTR): Revert to _GLIBCXX_VISIBILITY. * include/*: Use new macros for namespace scope. * config/*: Same. * src/*: Same. * src/Makefile.am (sources): Remove debug_list.cc, add compatibility-debug_list-2.cc. (parallel_sources): Remove parallel_list.cc, add compatibility-parallel_list-2.cc. (compatibility-parallel_list-2.[o,lo]): New rule. * src/Makefile.in: Regenerate. * src/debug_list.cc: Remove. * src/parallel_list.cc: Remove. * src/compatibility-list-2.cc: New. * src/compatibility-debug_list-2.cc: New. * src/compatibility-parallel_list-2.cc: New. * doc/doxygen/user.cfg.in: Adjust macros. * testsuite/20_util/auto_ptr/assign_neg.cc: Adjust line numbers, macros. * testsuite/20_util/declval/requirements/1_neg.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same. * testsuite/20_util/forward/c_neg.cc: Same. * testsuite/20_util/forward/f_neg.cc: Same. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same. * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Same. * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Same. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Same. * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same. * testsuite/23_containers/forward_list/capacity/1.cc: Same. * testsuite/23_containers/forward_list/requirements/dr438/ assign_neg.cc: Same. * testsuite/23_containers/forward_list/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/forward_list/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/forward_list/requirements/dr438/ insert_neg.cc: Same. * testsuite/23_containers/list/capacity/29134.cc: Same. * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same. * testsuite/23_containers/vector/bool/capacity/29134.cc: Same. * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: Same. * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same. * testsuite/25_algorithms/sort/35588.cc: Same. * testsuite/27_io/ios_base/cons/assign_neg.cc: Same. * testsuite/27_io/ios_base/cons/copy_neg.cc: Same. * testsuite/ext/profile/mutex_extensions_neg.cc: Same. * testsuite/ext/profile/profiler_algos.cc: Same. * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Same. * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Same. * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Same. * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Same. * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Same. From-SVN: r169421
2011-01-30 23:39:36 +01:00
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
system_error: New file. 2007-08-23 Benjamin Kosnik <bkoz@redhat.com> * include/std/system_error: New file. * src/system_error.cc: New file. * src/Makefile.am (sources): Add. * src/Makefile.in: Regenerate. * include/Makefile.am (std_headers): Add system_error. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): New. * configure.ac: Call it. * config.h.in: Regenerate. * include/bits/functional_hash.h: Add hash<error_code>. * include/std/ostream: Add inserters for error_code. * docs/doxygen/user.cfg.in: Add system_error. * config/abi/pre/gnu.ver(GLIBCXX_3.4.10): Add new symbols. * testsuite/19_diagnostics/error_code: New. * testsuite/19_diagnostics/error_code/cons: Same. * testsuite/19_diagnostics/error_code/cons/1.cc: Same. * testsuite/19_diagnostics/error_code/operators: Same. * testsuite/19_diagnostics/error_code/operators/bool.cc: Same. * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same. * testsuite/19_diagnostics/error_code/operators/equal.cc: Same. * testsuite/19_diagnostics/error_code/operators/not_equal.cc: Same. * testsuite/19_diagnostics/error_category: Same. * testsuite/19_diagnostics/error_category/cons: Same. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Same. * testsuite/19_diagnostics/error_category/cons/default.cc: Same. * testsuite/19_diagnostics/error_category/operators: Same. * testsuite/19_diagnostics/error_category/operators/equal.cc: Same. * testsuite/19_diagnostics/error_category/operators/not_equal.cc: Same. * testsuite/19_diagnostics/headers/system_error: Same. * testsuite/19_diagnostics/headers/system_error/ types_std_c++0x.cc: Same. * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Same. * testsuite/19_diagnostics/system_error: Same. * testsuite/19_diagnostics/system_error/ cons_virtual_derivation.cc: Same. * testsuite/19_diagnostics/system_error/cons-1.cc: Same. * testsuite/19_diagnostics/system_error/what-1.cc: Same. * testsuite/19_diagnostics/system_error/what-2.cc: Same. * testsuite/19_diagnostics/system_error/what-big.cc: Same. * testsuite/19_diagnostics/system_error/what-3.cc: Same. * testsuite/19_diagnostics/system_error/what-4.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ error_code.cc: Same. * testsuite/27_io/basic_ostream/inserters_other/char/ error_code.cc: Same. * testsuite/tr1/6_containers/hash/operators: New. * testsuite/tr1/6_containers/hash/operators/size_t.cc: Same. * testsuite/23_containers/hash: Move... * testsuite/20_util/hash: ... here. * testsuite/20_util/hash/operators: New. * testsuite/20_util/hash/operators/size_t.cc: New. * testsuite/20_util/function_objects/bad_function_call: Move... * testsuite/20_util/bad_function_call: ...here. From-SVN: r127744
2007-08-23 18:16:41 +02:00
re PR libstdc++/31426 (TR1 includes do not work with -std=c++0x) 2007-05-31 Paolo Carlini <pcarlini@suse.de> PR libstdc++/31426 * include/bits/c++config: Remove namespace association bits from tr1 to std. * include/ext/type_traits.h (__promote, __promote2, __promote3, __promote4): Add. * include/bits/hashtable.h: New. * include/bits/functional_hash.h: Likewise. * include/tr1/hashtable.h: Likewise. * include/tr1_impl/random: New. * include/tr1_impl/cinttypes: Likewise. * include/tr1_impl/cstdlib: Likewise. * include/tr1_impl/unordered_map: Likewise. * include/tr1_impl/cstdio: Likewise. * include/tr1_impl/boost_shared_ptr.h: Likewise. * include/tr1_impl/cctype: Likewise. * include/tr1_impl/random.tcc: Likewise. * include/tr1_impl/tuple: Likewise. * include/tr1_impl/functional_hash.h: Likewise. * include/tr1_impl/hashtable: Likewise. * include/tr1_impl/cmath: Likewise. * include/tr1_impl/type_traitsfwd.h: Likewise. * include/tr1_impl/hashtable_policy.h: Likewise. * include/tr1_impl/cfenv: Likewise. * include/tr1_impl/unordered_set: Likewise. * include/tr1_impl/functional: Likewise. * include/tr1_impl/utility: Likewise. * include/tr1_impl/complex: Likewise. * include/tr1_impl/type_traits: Likewise. * include/tr1_impl/cwchar: Likewise. * include/tr1_impl/cstdint: Likewise. * include/tr1_impl/regex: Likewise. * include/tr1_impl/array: Likewise. * include/tr1_impl/cwctype: Likewise. * include/tr1/type_traitsfwd.h: Remove. * include/tr1/boost_shared_ptr.h: Likewise. * include/tr1/common.h: Likewise. * include/tr1/hashtable: Likewise. * include/tr1/hashtable_policy.h: Likewise. * include/tr1/random.tcc: Likewise. * include/c_global/cinttypes: Include tr1_impl/cinttypes. * include/c_global/cstdlib: Likewise for cstdlib. * include/c_global/cstdio: Likewise for cstdio. * include/c_global/cctype: Likewise for cctype. * include/c_global/cmath: Likewise for cmath. * include/c_global/cfenv: Likewise for cfenv. * include/c_global/cwchar: Likewise for cwchar. * include/c_global/cstdint: Likewise for cstdint. * include/c_global/cwctype: Likewise for cwctype. * include/tr1/cinttypes: Likewise for cinttypes. * include/tr1/cstdlib: Likewise for cstdlib. * include/tr1/cstdio: Likewise for cstdio. * include/tr1/cctype: Likewise for cctype. * include/tr1/cmath: Likewise for cmath. * include/tr1/cfenv: Likewise for cfenv. * include/tr1/cwchar: Likewise for cwchar. * include/tr1/cstdint: Likewise for cstdint. * include/tr1/cwctype: Likewise for cwctype. * include/tr1/functional_hash.h: Likewise for functional_hash. * include/std/tuple: Include tr1_impl/tuple. * include/std/utility: Likewise for utility. * include/std/type_traits: Likewise for type_traits. (is_pod): Just forward to __is_pod. (has_trivial_default_constructor): Just forward to __has_trivial_constructor. (has_trivial_copy_constructor): Just forward to __has_trivial_copy. (has_trivial_assign): Just forward to __has_trivial_assign. (has_trivial_destructor): Just forward to __has_trivial_destructor. (has_nothrow_default_constructor): Just forward to __has_nothrow_constructor. (has_nothrow_copy_constructor): Just forward to __has_nothrow_copy. (has_nothrow_assign): Just forward to __has_nothrow_assign. (is_base_of): Just forward to __is_base_of. (is_signed, is_unsigned): Implement according to the C++0x specifications. * include/std/memory: Likewise for memory. * include/std/regex: Likewise for regex. * include/std/random: Likewise for random. * include/std/unordered_map: Likewise for unordered_map. * include/std/unordered_set: Likewise for unordered_set. * include/std/functional: Likewise for functional. * include/std/complex: Likewise for complex. * include/std/array: Likewise for array. * include/tr1/tuple: Likewise for tuple. * include/tr1/utility: Likewise for utility. * include/tr1/type_traits: Likewise for type_traits * include/tr1/memory: Likewise for memory. * include/tr1/regex: Likewise for regex. * include/tr1/random: Likewise for random. * include/tr1/unordered_map: Likewise for unordered_map. * include/tr1/unordered_set: Likewise for unordered_set. * include/tr1/functional: Likewise for functional. * include/tr1/complex: Likewise for complex. * include/tr1/array: Likewise for array. * include/c_global/ctgmath: Tweak. * include/c_global/cstdarg: Likewise. * include/c_global/ctime: Likewise. * include/c_global/climits: Likewise. * include/c_global/cfloat: Likewise. * include/c_global/ccomplex: Likewise. * include/c_global/cstdbool: Likewise. * include/tr1/poly_laguerre.tcc: Tweak, don't use _GLIBCXX_TR1. * include/tr1/riemann_zeta.tcc: Likewise. * include/tr1/beta_function.tcc: Likewise. * include/tr1/exp_integral.tcc: Likewise. * include/tr1/hypergeometric.tcc: Likewise. * include/tr1/modified_bessel_func.tcc: Likewise. * include/tr1/legendre_function.tcc: Likewise. * include/tr1/special_function_util.h: Likewise. * include/tr1/bessel_function.tcc: Likewise. * include/tr1/poly_hermite.tcc: Likewise. * include/tr1/ell_integral.tcc: Likewise. * include/tr1/gamma.tcc: Likewise. * include/tr1/stdlib.h: Likewise. * include/tr1/math.h: Likewise. * include/tr1/complex.h: Minor tweaks. * include/tr1/wctype.h: Likewise. * include/tr1/wchar.h: Likewise. * include/tr1/inttypes.h: Likewise. * include/tr1/tgmath.h: Likewise. * include/tr1/cstdbool: Likewise. * include/tr1/cfloat: Likewise. * include/tr1/ccomplex: Likewise. * include/tr1/ctime: Likewise. * include/tr1/climits: Likewise. * include/tr1/ctgmath: Likewise. * include/tr1/cstdarg: Likewise. * testsuite/tr1/headers.cc: Move... * testsuite/tr1/headers/all.cc: ... here. * testsuite/tr1/using_namespace_std_tr1.cc: Move... * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: ... here. * testsuite/tr1/headers/using_namespace_std_tr1.cc ... here. * testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc: New. * testsuite/20_util/tuple/requirements/explicit_instantiation.cc: Adjust namespace. * testsuite/20_util/has_nothrow_copy_constructor/value.cc: Adjust to the C++0x requirements. * testsuite/20_util/has_nothrow_default_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_default_constructor/value.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust dg-error lines. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc: Un-xfail. * testsuite/20_util/is_signed/value.cc: New. * testsuite/20_util/is_signed/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_signed/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_unsigned/value.cc: Likewise.. * testsuite/20_util/is_unsigned/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc: Likewise. * include/Makefile.am: Adjust. * include/Makefile.in: Regenerate. From-SVN: r125244
2007-06-01 01:37:56 +02:00
#endif // _FUNCTIONAL_HASH_H