    *  @tparam  _Alloc  Allocator type, defaults to allocator<_Key>.    *    *  Meets the requirements of a <a href="tables.html#00">container</a>, and    *  <a href="tables.html#xx">unordered associative container</a>    *    *  Base is _Hashtable, dispatched at compile time via template    *  alias __uset_hashtable.    */   template<class _Value,     class _Hash = hash<_Value>,     class _Pred = std::equal_to<_Value>,     class _Alloc = std::allocator<_Value> >     class unordered_set : __check_copy_constructible<_Alloc>     {       typedef __uset_hashtable<_Value, _Hash, _Pred, _Alloc>  _Hashtable;       _Hashtable _M_h;      public:       // typedefs:       //@{       /// Public typedefs.       typedef typename _Hashtable::key_type key_type;       typedef typename _Hashtable::value_type value_type;       typedef typename _Hashtable::hasher hasher;       typedef typename _Hashtable::key_equal key_equal;       typedef typename _Hashtable::allocator_type allocator_type;       //@}        //@{       ///  Iterator-related typedefs.       typedef typename allocator_type::pointer  pointer;       typedef typename allocator_type::const_pointer const_pointer;       typedef typename allocator_type::reference reference;       typedef typename allocator_type::const_reference const_reference;       typedef typename _Hashtable::iterator  iterator;       typedef typename _Hashtable::const_iterator const_iterator;       typedef typename _Hashtable::local_iterator local_iterator;       typedef typename _Hashtable::const_local_iterator const_local_iterator;       typedef typename _Hashtable::size_type  size_type;       typedef typename _Hashtable::difference_type difference_type;       //@}        // construct/destroy/copy       /**        *  @brief  Default constructor creates no elements.        *  @param __n  Initial number of buckets.        *  @param __hf  A hash functor.        *  @param __eql  A key equality functor.        *  @param __a  An allocator object.        */       explicit       unordered_