bool hashtable<_Val,_Key,_HF,_ExK,_EqK,_All>::_M_equal( const hashtable<_Val,_Key,_HF,_ExK,_EqK,_All>& __ht1, const hashtable<_Val,_Key,_HF,_ExK,_EqK,_All>& __ht2) { // typedef _Hashtable_node<_Val> _Node; if (__ht1.bucket_count() != __ht2.bucket_count()) return false; for (size_t __n = 0; __n < __ht1.bucket_count(); ++__n) { const _Node* __cur1 = __ht1._M_get_bucket(__n); const _Node* __cur2 = __ht2._M_get_bucket(__n); for ( ; __cur1 && __cur2 && __cur1->_M_val == __cur2->_M_val; __cur1 = __cur1->_M_next, __cur2 = __cur2->_M_next) {} if (__cur1 || __cur2) return false; } return true; }