1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
// PR c++/57016
// { dg-require-effective-target c++11 }
template < typename _Tp, _Tp __v > struct integral_constant
{
static constexpr _Tp value = __v;
};
template < bool, typename, typename > struct conditional;
template < typename ... >struct __and_;
template
<
typename
_B1,
typename
_B2 > struct __and_ <_B1, _B2 >:conditional < _B1::value, _B2, _B1 >::type
{};
template < typename _Pp > struct __not_:integral_constant < bool, _Pp::value >
{};
template < typename > struct add_rvalue_reference;
template
< typename _Tp > typename add_rvalue_reference < _Tp >::type declval ();
template < bool, typename _Iftrue, typename > struct conditional
{
typedef _Iftrue type;
};
template < class, class > struct pair;
template < typename > class allocator;
template < typename, typename, typename > struct binary_function;
template < typename _Tp > struct equal_to:binary_function < _Tp, _Tp, bool >
{};
template < typename > struct hash;
template < >struct hash <int >
{};
template
<
typename,
typename,
typename,
typename, typename, typename, typename, typename > struct _Hashtable_base;
template
<
typename,
typename
> struct __is_noexcept_hash:integral_constant < bool, noexcept ((declval)) >
{}
;
struct _Identity;
template < bool, bool _Constant_iterators, bool > struct _Hashtable_traits
;
struct _Mod_range_hashing;
struct _Default_ranged_hash;
struct _Prime_rehash_policy;
template
<
typename
_Tp,
typename
_Hash
>
using
__cache_default
=
__not_
<
__and_
<
integral_constant
< bool, __is_final (_Hash) >, __is_noexcept_hash < _Tp, _Hash > >>;
template < typename _Key, typename _Value, typename, typename _ExtractKey, typename _Equal, typename _H1, typename _H2, typename, typename _RehashPolicy, typename _Traits > class _Hashtable:
_Hashtable_base
< _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _RehashPolicy, _Traits >
{}
;
template
<
bool
_Cache > using __uset_traits = _Hashtable_traits < _Cache, true, true >;
template
<
typename
_Value,
typename
_Hash
=
hash
<
_Value
>,
typename
_Pred
=
equal_to
<
_Value
>,
typename
_Alloc
=
allocator
<
_Value
>,
typename
_Tr
=
__uset_traits
<
__cache_default
<
_Value,
_Hash
>::value
>
>
using
__uset_hashtable
=
_Hashtable
<
_Value,
_Value,
_Alloc,
_Identity,
_Pred,
_Hash,
_Mod_range_hashing, _Default_ranged_hash, _Prime_rehash_policy, _Tr >;
template < class _Value, class = hash < _Value > >class unordered_set
{
typedef __uset_hashtable < _Value > iterator;
template < typename > pair < iterator, bool > emplace ();
}
;
template class unordered_set < int >;
|