--- hash_table.hpp 2004-05-14 00:14:34.101968000 +1000 +++ hash_table.old.hpp 2004-05-14 00:04:10.294977600 +1000 @@ -220,7 +220,7 @@ return *bound; } - static const std::size_t default_initial_bucket_count = 50; + const static std::size_t default_initial_bucket_count = 50; // equivalent keys specialization @@ -490,7 +490,7 @@ node *next; }; - typedef typename Alloc:: BOOST_NESTED_TEMPLATE rebind::other node_allocator; + typedef typename Alloc::rebind::other node_allocator; node_allocator alloc; @@ -502,16 +502,11 @@ protected: - typedef typename Alloc:: BOOST_NESTED_TEMPLATE rebind::other bucket_allocator; + typedef typename Alloc::rebind::other bucket_allocator; bucket_allocator get_bucket_allocator() { return bucket_allocator(alloc); } - - const bucket_allocator get_bucket_allocator() const - { - return bucket_allocator(alloc); - } hasher hf; key_equal eq; @@ -640,7 +635,7 @@ > { friend class boost::iterator_core_access; - //friend class basic_hash_table_type; // problem + friend class basic_hash_table_type; template friend class iterator_base; @@ -698,9 +693,9 @@ class iterator : public iterator_base { - //friend class basic_hash_table_type; // problem + friend class basic_hash_table_type; - //friend struct specialized_operations; + friend struct specialized_operations; friend class const_iterator; typedef iterator_base< @@ -718,9 +713,9 @@ class const_iterator : public iterator_base { - //friend class basic_hash_table_type; + friend class basic_hash_table_type; - //friend struct specialized_operations; + friend struct specialized_operations; typedef iterator_base< typename basic_hash_table_type::value_type const @@ -790,7 +785,7 @@ typename basic_hash_table_type::value_type > { - //friend class basic_hash_table_type; + friend class basic_hash_table_type; typedef local_iterator_base< typename basic_hash_table_type::value_type @@ -808,7 +803,7 @@ class const_local_iterator : public local_iterator_base { - //friend class basic_hash_table_type; + friend class basic_hash_table_type; typedef local_iterator_base< typename basic_hash_table_type::value_type const @@ -968,7 +963,7 @@ rehash(static_cast(mlf * n + 1)); } - //friend struct specialized_operations; + friend struct specialized_operations; public: @@ -1052,10 +1047,10 @@ void erase(const_iterator r) { size_type i = bucket(extract_key(*r)); - node **node_pointer = bucket + i; + node_pointer **node_pointer = bucket + i; while (*node_pointer != r.node_pointer) node_pointer = &((*node_pointer)->next); - node *n = *node_pointer; + node_pointer *n = *node_pointer; *node_pointer = n->next; n->~node(); // must not throw try {