diff options
Diffstat (limited to 'Source/kwsys/hash_set.hxx.in')
-rw-r--r-- | Source/kwsys/hash_set.hxx.in | 217 |
1 files changed, 125 insertions, 92 deletions
diff --git a/Source/kwsys/hash_set.hxx.in b/Source/kwsys/hash_set.hxx.in index c314979..e3a0c6c 100644 --- a/Source/kwsys/hash_set.hxx.in +++ b/Source/kwsys/hash_set.hxx.in @@ -1,14 +1,5 @@ -/*============================================================================ - KWSys - Kitware System Library - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium - - Distributed under the OSI-approved BSD License (the "License"); - see accompanying file Copyright.txt for details. - - This software is distributed WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the License for more information. -============================================================================*/ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing#kwsys for details. */ /* * Copyright (c) 1996 * Silicon Graphics Computer Systems, Inc. @@ -38,49 +29,49 @@ #define @KWSYS_NAMESPACE@_hash_set_hxx #include <@KWSYS_NAMESPACE@/hashtable.hxx> + #include <@KWSYS_NAMESPACE@/hash_fun.hxx> + #include <functional> // equal_to #if defined(_MSC_VER) -# pragma warning (push) -# pragma warning (disable:4284) -# pragma warning (disable:4786) +#pragma warning(push) +#pragma warning(disable : 4284) +#pragma warning(disable : 4786) #endif #if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32) -# pragma set woff 1174 -# pragma set woff 1375 +#pragma set woff 1174 +#pragma set woff 1375 #endif -namespace @KWSYS_NAMESPACE@ -{ +namespace @KWSYS_NAMESPACE@ { // identity is an extension: it is not part of the standard. template <class _Tp> -struct _Identity : public std::unary_function<_Tp,_Tp> +struct _Identity : public std::unary_function<_Tp, _Tp> { const _Tp& operator()(const _Tp& __x) const { return __x; } }; // Forward declaration of equality operator; needed for friend declaration. -template <class _Value, - class _HashFcn = hash<_Value>, +template <class _Value, class _HashFcn = hash<_Value>, class _EqualKey = std::equal_to<_Value>, class _Alloc = std::allocator<char> > class hash_set; template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> -bool -operator==(const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs1, - const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs2); +bool operator==(const hash_set<_Value, _HashFcn, _EqualKey, _Alloc>& __hs1, + const hash_set<_Value, _HashFcn, _EqualKey, _Alloc>& __hs2); template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> class hash_set { private: - typedef hashtable<_Value, _Value, _HashFcn, _Identity<_Value>, - _EqualKey, _Alloc> _Ht; + typedef hashtable<_Value, _Value, _HashFcn, _Identity<_Value>, _EqualKey, + _Alloc> + _Ht; _Ht _M_ht; public: @@ -107,34 +98,50 @@ public: public: hash_set() - : _M_ht(100, hasher(), key_equal(), allocator_type()) {} + : _M_ht(100, hasher(), key_equal(), allocator_type()) + { + } explicit hash_set(size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) {} + : _M_ht(__n, hasher(), key_equal(), allocator_type()) + { + } hash_set(size_type __n, const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) {} + : _M_ht(__n, __hf, key_equal(), allocator_type()) + { + } hash_set(size_type __n, const hasher& __hf, const key_equal& __eql, const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) {} + : _M_ht(__n, __hf, __eql, __a) + { + } template <class _InputIterator> hash_set(_InputIterator __f, _InputIterator __l) : _M_ht(100, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } + { + _M_ht.insert_unique(__f, __l); + } template <class _InputIterator> hash_set(_InputIterator __f, _InputIterator __l, size_type __n) : _M_ht(__n, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } + { + _M_ht.insert_unique(__f, __l); + } template <class _InputIterator> hash_set(_InputIterator __f, _InputIterator __l, size_type __n, const hasher& __hf) : _M_ht(__n, __hf, key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } + { + _M_ht.insert_unique(__f, __l); + } template <class _InputIterator> hash_set(_InputIterator __f, _InputIterator __l, size_type __n, const hasher& __hf, const key_equal& __eql, const allocator_type& __a = allocator_type()) : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_unique(__f, __l); } + { + _M_ht.insert_unique(__f, __l); + } public: size_type size() const { return _M_ht.size(); } @@ -142,27 +149,27 @@ public: bool empty() const { return _M_ht.empty(); } void swap(hash_set& __hs) { _M_ht.swap(__hs._M_ht); } - friend bool operator==<>(const hash_set&, - const hash_set&); + friend bool operator==<>(const hash_set&, const hash_set&); iterator begin() const { return _M_ht.begin(); } iterator end() const { return _M_ht.end(); } public: std::pair<iterator, bool> insert(const value_type& __obj) - { - typedef typename _Ht::iterator _Ht_iterator; - std::pair<_Ht_iterator, bool> __p = _M_ht.insert_unique(__obj); - return std::pair<iterator,bool>(__p.first, __p.second); - } + { + typedef typename _Ht::iterator _Ht_iterator; + std::pair<_Ht_iterator, bool> __p = _M_ht.insert_unique(__obj); + return std::pair<iterator, bool>(__p.first, __p.second); + } template <class _InputIterator> void insert(_InputIterator __f, _InputIterator __l) - { _M_ht.insert_unique(__f,__l); } + { + _M_ht.insert_unique(__f, __l); + } std::pair<iterator, bool> insert_noresize(const value_type& __obj) { typedef typename _Ht::iterator _Ht_iterator; - std::pair<_Ht_iterator, bool> __p = - _M_ht.insert_unique_noresize(__obj); + std::pair<_Ht_iterator, bool> __p = _M_ht.insert_unique_noresize(__obj); return std::pair<iterator, bool>(__p.first, __p.second); } @@ -171,9 +178,11 @@ public: size_type count(const key_type& __key) const { return _M_ht.count(__key); } std::pair<iterator, iterator> equal_range(const key_type& __key) const - { return _M_ht.equal_range(__key); } + { + return _M_ht.equal_range(__key); + } - size_type erase(const key_type& __key) {return _M_ht.erase(__key); } + size_type erase(const key_type& __key) { return _M_ht.erase(__key); } void erase(iterator __it) { _M_ht.erase(__it); } void erase(iterator __f, iterator __l) { _M_ht.erase(__f, __l); } void clear() { _M_ht.clear(); } @@ -183,50 +192,49 @@ public: size_type bucket_count() const { return _M_ht.bucket_count(); } size_type max_bucket_count() const { return _M_ht.max_bucket_count(); } size_type elems_in_bucket(size_type __n) const - { return _M_ht.elems_in_bucket(__n); } + { + return _M_ht.elems_in_bucket(__n); + } }; template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> -bool -operator==(const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs1, - const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs2) +bool operator==(const hash_set<_Value, _HashFcn, _EqualKey, _Alloc>& __hs1, + const hash_set<_Value, _HashFcn, _EqualKey, _Alloc>& __hs2) { return __hs1._M_ht == __hs2._M_ht; } template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> -inline bool -operator!=(const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs1, - const hash_set<_Value,_HashFcn,_EqualKey,_Alloc>& __hs2) { +inline bool operator!=( + const hash_set<_Value, _HashFcn, _EqualKey, _Alloc>& __hs1, + const hash_set<_Value, _HashFcn, _EqualKey, _Alloc>& __hs2) +{ return !(__hs1 == __hs2); } template <class _Val, class _HashFcn, class _EqualKey, class _Alloc> -inline void -swap(hash_set<_Val,_HashFcn,_EqualKey,_Alloc>& __hs1, - hash_set<_Val,_HashFcn,_EqualKey,_Alloc>& __hs2) +inline void swap(hash_set<_Val, _HashFcn, _EqualKey, _Alloc>& __hs1, + hash_set<_Val, _HashFcn, _EqualKey, _Alloc>& __hs2) { __hs1.swap(__hs2); } -template <class _Value, - class _HashFcn = hash<_Value>, +template <class _Value, class _HashFcn = hash<_Value>, class _EqualKey = std::equal_to<_Value>, class _Alloc = std::allocator<char> > class hash_multiset; template <class _Val, class _HashFcn, class _EqualKey, class _Alloc> -bool -operator==(const hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs1, - const hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs2); - +bool operator==(const hash_multiset<_Val, _HashFcn, _EqualKey, _Alloc>& __hs1, + const hash_multiset<_Val, _HashFcn, _EqualKey, _Alloc>& __hs2); template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> class hash_multiset { private: - typedef hashtable<_Value, _Value, _HashFcn, _Identity<_Value>, - _EqualKey, _Alloc> _Ht; + typedef hashtable<_Value, _Value, _HashFcn, _Identity<_Value>, _EqualKey, + _Alloc> + _Ht; _Ht _M_ht; public: @@ -253,34 +261,50 @@ public: public: hash_multiset() - : _M_ht(100, hasher(), key_equal(), allocator_type()) {} + : _M_ht(100, hasher(), key_equal(), allocator_type()) + { + } explicit hash_multiset(size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) {} + : _M_ht(__n, hasher(), key_equal(), allocator_type()) + { + } hash_multiset(size_type __n, const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) {} + : _M_ht(__n, __hf, key_equal(), allocator_type()) + { + } hash_multiset(size_type __n, const hasher& __hf, const key_equal& __eql, const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) {} + : _M_ht(__n, __hf, __eql, __a) + { + } template <class _InputIterator> hash_multiset(_InputIterator __f, _InputIterator __l) : _M_ht(100, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } + { + _M_ht.insert_equal(__f, __l); + } template <class _InputIterator> hash_multiset(_InputIterator __f, _InputIterator __l, size_type __n) : _M_ht(__n, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } + { + _M_ht.insert_equal(__f, __l); + } template <class _InputIterator> hash_multiset(_InputIterator __f, _InputIterator __l, size_type __n, const hasher& __hf) : _M_ht(__n, __hf, key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } + { + _M_ht.insert_equal(__f, __l); + } template <class _InputIterator> hash_multiset(_InputIterator __f, _InputIterator __l, size_type __n, const hasher& __hf, const key_equal& __eql, const allocator_type& __a = allocator_type()) : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_equal(__f, __l); } + { + _M_ht.insert_equal(__f, __l); + } public: size_type size() const { return _M_ht.size(); } @@ -288,29 +312,36 @@ public: bool empty() const { return _M_ht.empty(); } void swap(hash_multiset& hs) { _M_ht.swap(hs._M_ht); } - friend bool operator==<>(const hash_multiset&, - const hash_multiset&); + friend bool operator==<>(const hash_multiset&, const hash_multiset&); iterator begin() const { return _M_ht.begin(); } iterator end() const { return _M_ht.end(); } public: iterator insert(const value_type& __obj) - { return _M_ht.insert_equal(__obj); } + { + return _M_ht.insert_equal(__obj); + } template <class _InputIterator> void insert(_InputIterator __f, _InputIterator __l) - { _M_ht.insert_equal(__f,__l); } + { + _M_ht.insert_equal(__f, __l); + } iterator insert_noresize(const value_type& __obj) - { return _M_ht.insert_equal_noresize(__obj); } + { + return _M_ht.insert_equal_noresize(__obj); + } iterator find(const key_type& __key) const { return _M_ht.find(__key); } size_type count(const key_type& __key) const { return _M_ht.count(__key); } std::pair<iterator, iterator> equal_range(const key_type& __key) const - { return _M_ht.equal_range(__key); } + { + return _M_ht.equal_range(__key); + } - size_type erase(const key_type& __key) {return _M_ht.erase(__key); } + size_type erase(const key_type& __key) { return _M_ht.erase(__key); } void erase(iterator __it) { _M_ht.erase(__it); } void erase(iterator __f, iterator __l) { _M_ht.erase(__f, __l); } void clear() { _M_ht.clear(); } @@ -320,40 +351,42 @@ public: size_type bucket_count() const { return _M_ht.bucket_count(); } size_type max_bucket_count() const { return _M_ht.max_bucket_count(); } size_type elems_in_bucket(size_type __n) const - { return _M_ht.elems_in_bucket(__n); } + { + return _M_ht.elems_in_bucket(__n); + } }; template <class _Val, class _HashFcn, class _EqualKey, class _Alloc> -bool -operator==(const hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs1, - const hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs2) +bool operator==(const hash_multiset<_Val, _HashFcn, _EqualKey, _Alloc>& __hs1, + const hash_multiset<_Val, _HashFcn, _EqualKey, _Alloc>& __hs2) { return __hs1._M_ht == __hs2._M_ht; } template <class _Val, class _HashFcn, class _EqualKey, class _Alloc> -inline bool -operator!=(const hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs1, - const hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs2) { +inline bool operator!=( + const hash_multiset<_Val, _HashFcn, _EqualKey, _Alloc>& __hs1, + const hash_multiset<_Val, _HashFcn, _EqualKey, _Alloc>& __hs2) +{ return !(__hs1 == __hs2); } template <class _Val, class _HashFcn, class _EqualKey, class _Alloc> -inline void -swap(hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs1, - hash_multiset<_Val,_HashFcn,_EqualKey,_Alloc>& __hs2) { +inline void swap(hash_multiset<_Val, _HashFcn, _EqualKey, _Alloc>& __hs1, + hash_multiset<_Val, _HashFcn, _EqualKey, _Alloc>& __hs2) +{ __hs1.swap(__hs2); } } // namespace @KWSYS_NAMESPACE@ #if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32) -# pragma reset woff 1174 -# pragma reset woff 1375 +#pragma reset woff 1174 +#pragma reset woff 1375 #endif #if defined(_MSC_VER) -# pragma warning (pop) +#pragma warning(pop) #endif #endif |