blob: 9085b71a3d916daba652ffb2bcaf9ce1bbb385b5 [file] [log] [blame]
// 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 >;