From 6f45d36d9778172791e3d106dfbe68c8591919df Mon Sep 17 00:00:00 2001 From: Daniel James Date: Wed, 11 Mar 2009 22:51:09 +0000 Subject: [PATCH] Merge hash and unordered changes. Remove deprecated headers, move hash_fwd.hpp into hash subdirectory. And several minor internal changes. Mostly minor internal details. Merged revisions 51262-51263,51407-51409,51504-51505,51644-51646,51667 via svnmerge from https://svn.boost.org/svn/boost/trunk ........ r51262 | danieljames | 2009-02-15 19:32:04 +0000 (Sun, 15 Feb 2009) | 1 line Use the new 'boost:' links for the hash, unordered and quickbook documentation. ........ r51263 | danieljames | 2009-02-15 19:32:19 +0000 (Sun, 15 Feb 2009) | 2 lines Don't copy images for the standalone hash and unordered documentation, was only really required before the libraries were integrated into boost. ........ r51407 | danieljames | 2009-02-22 23:49:51 +0000 (Sun, 22 Feb 2009) | 1 line Fix the hash dirname. ........ r51408 | danieljames | 2009-02-22 23:50:04 +0000 (Sun, 22 Feb 2009) | 1 line Make copy_buckets and move_buckets member functions - so that calling them is a bit simpler. ........ r51409 | danieljames | 2009-02-22 23:50:20 +0000 (Sun, 22 Feb 2009) | 1 line Move some of the data structure classes out of hash table data. ........ r51504 | danieljames | 2009-03-01 14:15:09 +0000 (Sun, 01 Mar 2009) | 1 line Add missing return for operator=. ........ r51505 | danieljames | 2009-03-01 14:15:39 +0000 (Sun, 01 Mar 2009) | 3 lines Make the sort stable. Doesn't really matter, but it might as well be. ........ r51644 | danieljames | 2009-03-08 09:44:51 +0000 (Sun, 08 Mar 2009) | 1 line Detab. ........ r51645 | danieljames | 2009-03-08 09:45:11 +0000 (Sun, 08 Mar 2009) | 4 lines Move hash_fwd into the hash subdirectory. I should have done this in the last release. But now all of the hash implementation is in the hash subdirectory. ........ r51646 | danieljames | 2009-03-08 09:45:30 +0000 (Sun, 08 Mar 2009) | 3 lines Remove deprecated headers. Fixes #2412. ........ r51667 | danieljames | 2009-03-09 20:56:23 +0000 (Mon, 09 Mar 2009) | 1 line Update copyright dates in hash and unordered. ........ [SVN r51729] --- doc/Jamfile.v2 | 16 +- doc/bibliography.xml | 2 +- doc/changes.qbk | 4 +- doc/hash_equality.qbk | 4 +- doc/ref.xml | 10 +- doc/src_code/intro.cpp | 2 +- doc/src_code/point1.cpp | 2 +- doc/src_code/point2.cpp | 2 +- examples/case_insensitive.hpp | 2 +- examples/case_insensitive_test.cpp | 2 +- examples/fnv1.hpp | 2 +- .../unordered/detail/allocator_helpers.hpp | 2 +- include/boost/unordered/detail/config.hpp | 2 +- include/boost/unordered/detail/hash_table.hpp | 45 +++++- .../unordered/detail/hash_table_impl.hpp | 138 +++++++----------- include/boost/unordered/unordered_map.hpp | 2 +- include/boost/unordered/unordered_map_fwd.hpp | 2 +- include/boost/unordered/unordered_set.hpp | 2 +- include/boost/unordered/unordered_set_fwd.hpp | 2 +- test/exception/assign_exception_tests.cpp | 2 +- .../exception/constructor_exception_tests.cpp | 2 +- test/exception/containers.hpp | 2 +- test/exception/copy_exception_tests.cpp | 2 +- test/exception/erase_exception_tests.cpp | 2 +- test/exception/insert_exception_tests.cpp | 2 +- test/exception/rehash_exception_tests.cpp | 2 +- test/exception/swap_exception_tests.cpp | 2 +- test/helpers/allocator.hpp | 2 +- test/helpers/check_return_type.hpp | 2 +- test/helpers/count.hpp | 2 +- test/helpers/equivalent.hpp | 2 +- test/helpers/exception_test.hpp | 2 +- test/helpers/fwd.hpp | 2 +- test/helpers/generators.hpp | 2 +- test/helpers/helpers.hpp | 2 +- test/helpers/input_iterator.hpp | 2 +- test/helpers/invariants.hpp | 2 +- test/helpers/list.hpp | 27 +++- test/helpers/memory.hpp | 2 +- test/helpers/metafunctions.hpp | 2 +- test/helpers/random_values.hpp | 2 +- test/helpers/strong.hpp | 2 +- test/helpers/test.hpp | 2 +- test/helpers/tracker.hpp | 2 +- test/objects/exception.hpp | 2 +- test/objects/fwd.hpp | 2 +- test/objects/minimal.hpp | 2 +- test/objects/test.hpp | 2 +- test/unordered/assign_tests.cpp | 2 +- test/unordered/at_tests.cpp | 2 +- test/unordered/bucket_tests.cpp | 2 +- test/unordered/compile_map.cpp | 2 +- test/unordered/compile_set.cpp | 2 +- test/unordered/compile_tests.hpp | 2 +- test/unordered/constructor_tests.cpp | 2 +- test/unordered/copy_tests.cpp | 2 +- test/unordered/equality_tests.cpp | 2 +- test/unordered/equivalent_keys_tests.cpp | 2 +- test/unordered/erase_equiv_tests.cpp | 2 +- test/unordered/erase_tests.cpp | 2 +- test/unordered/find_tests.cpp | 2 +- test/unordered/fwd_map_test.cpp | 2 +- test/unordered/fwd_set_test.cpp | 2 +- test/unordered/insert_stable_tests.cpp | 2 +- test/unordered/insert_tests.cpp | 2 +- test/unordered/link_test_1.cpp | 2 +- test/unordered/link_test_2.cpp | 2 +- test/unordered/load_factor_tests.cpp | 2 +- test/unordered/move_tests.cpp | 2 +- test/unordered/rehash_tests.cpp | 2 +- test/unordered/simple_tests.cpp | 2 +- test/unordered/swap_tests.cpp | 2 +- test/unordered/unnecessary_copy_tests.cpp | 2 +- 73 files changed, 197 insertions(+), 179 deletions(-) diff --git a/doc/Jamfile.v2 b/doc/Jamfile.v2 index 6858f762..ceb7d91a 100644 --- a/doc/Jamfile.v2 +++ b/doc/Jamfile.v2 @@ -8,11 +8,11 @@ path-constant admonishment_location : ../../../../doc/src/images ; xml unordered : unordered.qbk ; boostbook standalone : unordered : - html:admon.graphics.path=images/ - navig.graphics.path=images/ - html.stylesheet=boostbook.css + html.stylesheet=../../../../doc/html/boostbook.css boost.root=../../../.. boost.libraries=../../../libraries.htm + navig.graphics=1 + chunk.first.sections=1 chunk.section.depth=2 generate.section.toc.level=2 @@ -23,9 +23,6 @@ boostbook standalone : unordered : boost.compact.function=0 boost.compact.enum=0 - css - images - # PDF Options: # TOC Generation: this is needed for FOP-0.9 and later: fop1.extensions=0 @@ -54,10 +51,3 @@ boostbook standalone : unordered : pdf:boost.url.prefix=http://www.boost.org/doc/libs/release/libs/unordered/doc/html ; -install css : [ glob $(BOOST_ROOT)/doc/src/*.css ] - : html ; -install images : [ glob $(BOOST_ROOT)/doc/src/images/*.png ] - : html/images ; -explicit css ; -explicit images ; - diff --git a/doc/bibliography.xml b/doc/bibliography.xml index 1f2f077e..68e8f2bf 100644 --- a/doc/bibliography.xml +++ b/doc/bibliography.xml @@ -1,5 +1,5 @@ diff --git a/doc/changes.qbk b/doc/changes.qbk index 204b427b..cb48dad4 100644 --- a/doc/changes.qbk +++ b/doc/changes.qbk @@ -44,7 +44,7 @@ First official release. [h2 Boost 1.38.0] -* Use [@../../libs/utility/swap.html `boost::swap`]. +* Use [@boost:/libs/utility/swap.html `boost::swap`]. * [@https://svn.boost.org/trac/boost/ticket/2237 Ticket 2237]: Document that the equality and inequality operators are undefined for two objects if their equality predicates aren't equivalent. Thanks to Daniel @@ -53,7 +53,7 @@ First official release. Use a larger prime number list. Thanks to Thorsten Ottosen and Hervé Brönnimann. * Use - [@../../libs/type_traits/doc/html/boost_typetraits/category/alignment.html + [@boost:/libs/type_traits/doc/html/boost_typetraits/category/alignment.html aligned storage] to store the types. This changes the way the allocator is used to construct nodes. It used to construct the node with two calls to the allocator's `construct` method - once for the pointers and once for the diff --git a/doc/hash_equality.qbk b/doc/hash_equality.qbk index 74004b49..8fc08fb3 100644 --- a/doc/hash_equality.qbk +++ b/doc/hash_equality.qbk @@ -23,7 +23,7 @@ but not the equality predicate. For example, if you wanted to use the [import src_code/dictionary.cpp] [case_sensitive_dictionary_fnv] -There is an [@../../libs/unordered/examples/fnv1.hpp implementation +There is an [@boost:/libs/unordered/examples/fnv1.hpp implementation of FNV-1] in the examples directory. If you wish to use a different equality function, @@ -38,7 +38,7 @@ Which you can then use in a case insensitive dictionary: [case_insensitive_dictionary] This is a simplified version of the example at -[@../../libs/unordered/examples/case_insensitive.hpp /libs/unordered/examples/case_insensitive.hpp] +[@boost:/libs/unordered/examples/case_insensitive.hpp /libs/unordered/examples/case_insensitive.hpp] which supports other locales and string types. [caution diff --git a/doc/ref.xml b/doc/ref.xml index 2b045219..046f7f28 100644 --- a/doc/ref.xml +++ b/doc/ref.xml @@ -1,5 +1,5 @@ @@ -24,7 +24,7 @@ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) For the normative reference see chapter 23 of - the working draft of the C++ standard [n2691]. + the working draft of the C++ standard [n2691]. Template Parameters @@ -758,7 +758,7 @@ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) For the normative reference see chapter 23 of - the working draft of the C++ standard [n2691]. + the working draft of the C++ standard [n2691]. Template Parameters @@ -1496,7 +1496,7 @@ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) For the normative reference see chapter 23 of - the working draft of the C++ standard [n2691]. + the working draft of the C++ standard [n2691]. Template Parameters @@ -2279,7 +2279,7 @@ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) For the normative reference see chapter 23 of - the working draft of the C++ standard [n2691]. + the working draft of the C++ standard [n2691]. Template Parameters diff --git a/doc/src_code/intro.cpp b/doc/src_code/intro.cpp index bb0e6a73..883d3662 100644 --- a/doc/src_code/intro.cpp +++ b/doc/src_code/intro.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/src_code/point1.cpp b/doc/src_code/point1.cpp index 10bd18f7..0d17c1f5 100644 --- a/doc/src_code/point1.cpp +++ b/doc/src_code/point1.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/src_code/point2.cpp b/doc/src_code/point2.cpp index 7b6ef99a..359984cb 100644 --- a/doc/src_code/point2.cpp +++ b/doc/src_code/point2.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/examples/case_insensitive.hpp b/examples/case_insensitive.hpp index 09ced0ba..0204a221 100644 --- a/examples/case_insensitive.hpp +++ b/examples/case_insensitive.hpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/examples/case_insensitive_test.cpp b/examples/case_insensitive_test.cpp index c83854d6..ee1ed8da 100644 --- a/examples/case_insensitive_test.cpp +++ b/examples/case_insensitive_test.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/examples/fnv1.hpp b/examples/fnv1.hpp index 60bf8985..03afc292 100644 --- a/examples/fnv1.hpp +++ b/examples/fnv1.hpp @@ -1,5 +1,5 @@ -// Copyright 2008 Daniel James. +// Copyright 2008-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/include/boost/unordered/detail/allocator_helpers.hpp b/include/boost/unordered/detail/allocator_helpers.hpp index 6abf0bce..0c0bd3a5 100644 --- a/include/boost/unordered/detail/allocator_helpers.hpp +++ b/include/boost/unordered/detail/allocator_helpers.hpp @@ -1,5 +1,5 @@ -// Copyright 2005-2008 Daniel James. +// Copyright 2005-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/include/boost/unordered/detail/config.hpp b/include/boost/unordered/detail/config.hpp index e6e7ed98..f277feae 100644 --- a/include/boost/unordered/detail/config.hpp +++ b/include/boost/unordered/detail/config.hpp @@ -1,5 +1,5 @@ -// Copyright 2008 Daniel James. +// Copyright 2008-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/include/boost/unordered/detail/hash_table.hpp b/include/boost/unordered/detail/hash_table.hpp index a143c8c2..1bdcced8 100644 --- a/include/boost/unordered/detail/hash_table.hpp +++ b/include/boost/unordered/detail/hash_table.hpp @@ -1,6 +1,6 @@ // Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard. -// Copyright (C) 2005-2008 Daniel James +// Copyright (C) 2005-2009 Daniel James // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -228,6 +228,49 @@ namespace boost { void destroy(T* x) { x->~T(); } + + // Some classes for the data structure + + template + struct bucket_impl + { + private: + bucket_impl& operator=(bucket_impl const&); + public: + typedef BOOST_DEDUCED_TYPENAME + boost::unordered_detail::rebind_wrap::type + bucket_allocator; + typedef BOOST_DEDUCED_TYPENAME + allocator_pointer::type bucket_ptr; + typedef bucket_ptr link_ptr; + + link_ptr next_; + + bucket_impl() : next_() + { + BOOST_UNORDERED_MSVC_RESET_PTR(next_); + } + + bucket_impl(bucket_impl const& x) : next_(x.next_) + { + // Only copy construct when allocating. + BOOST_ASSERT(!x.next_); + } + + bool empty() const + { + return !this->next_; + } + }; + + template + struct value_base { + typename boost::aligned_storage< + sizeof(T), + boost::alignment_of::value>::type data_; + + void* address() { return this; } + }; } } diff --git a/include/boost/unordered/detail/hash_table_impl.hpp b/include/boost/unordered/detail/hash_table_impl.hpp index bdee0614..c7ab515d 100644 --- a/include/boost/unordered/detail/hash_table_impl.hpp +++ b/include/boost/unordered/detail/hash_table_impl.hpp @@ -1,11 +1,12 @@ // Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard. -// Copyright (C) 2005-2008 Daniel James +// Copyright (C) 2005-2009 Daniel James // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #if BOOST_UNORDERED_EQUIVALENT_KEYS #define BOOST_UNORDERED_TABLE hash_table_equivalent_keys +#define BOOST_UNORDERED_TABLE_NODE node_equivalent_keys #define BOOST_UNORDERED_TABLE_DATA hash_table_data_equivalent_keys #define BOOST_UNORDERED_ITERATOR hash_iterator_equivalent_keys #define BOOST_UNORDERED_CONST_ITERATOR hash_const_iterator_equivalent_keys @@ -13,6 +14,7 @@ #define BOOST_UNORDERED_CONST_LOCAL_ITERATOR hash_const_local_iterator_equivalent_keys #else #define BOOST_UNORDERED_TABLE hash_table_unique_keys +#define BOOST_UNORDERED_TABLE_NODE node_unique_keys #define BOOST_UNORDERED_TABLE_DATA hash_table_data_unique_keys #define BOOST_UNORDERED_ITERATOR hash_iterator_unique_keys #define BOOST_UNORDERED_CONST_ITERATOR hash_const_iterator_unique_keys @@ -23,6 +25,32 @@ namespace boost { namespace unordered_detail { + template + struct BOOST_UNORDERED_TABLE_NODE : + value_base::type>, + bucket_impl + { + typedef BOOST_DEDUCED_TYPENAME bucket_impl::link_ptr link_ptr; + typedef BOOST_DEDUCED_TYPENAME allocator_value_type::type value_type; + + typedef BOOST_DEDUCED_TYPENAME + boost::unordered_detail::rebind_wrap::type + node_allocator; + +#if BOOST_UNORDERED_EQUIVALENT_KEYS + BOOST_UNORDERED_TABLE_NODE() : group_prev_() + { + BOOST_UNORDERED_MSVC_RESET_PTR(group_prev_); + } + + link_ptr group_prev_; +#endif + + value_type& value() { + return *static_cast(this->address()); + } + }; + // // Hash Table Data // @@ -34,86 +62,24 @@ namespace boost { public: typedef BOOST_UNORDERED_TABLE_DATA data; - struct node; - struct bucket; typedef std::size_t size_type; typedef std::ptrdiff_t difference_type; typedef Alloc value_allocator; - typedef BOOST_DEDUCED_TYPENAME - boost::unordered_detail::rebind_wrap::type - node_allocator; - typedef BOOST_DEDUCED_TYPENAME - boost::unordered_detail::rebind_wrap::type - bucket_allocator; + typedef bucket_impl bucket; + typedef BOOST_DEDUCED_TYPENAME bucket::bucket_allocator bucket_allocator; + typedef BOOST_DEDUCED_TYPENAME bucket::bucket_ptr bucket_ptr; + typedef BOOST_DEDUCED_TYPENAME bucket::link_ptr link_ptr; + + typedef BOOST_UNORDERED_TABLE_NODE node; + typedef BOOST_DEDUCED_TYPENAME node::node_allocator node_allocator; typedef BOOST_DEDUCED_TYPENAME allocator_value_type::type value_type; typedef BOOST_DEDUCED_TYPENAME allocator_pointer::type node_ptr; - typedef BOOST_DEDUCED_TYPENAME allocator_pointer::type bucket_ptr; typedef BOOST_DEDUCED_TYPENAME allocator_reference::type reference; typedef BOOST_DEDUCED_TYPENAME allocator_reference::type bucket_reference; - typedef bucket_ptr link_ptr; - - // Hash Bucket - // - // all no throw - - struct bucket - { - private: - bucket& operator=(bucket const&); - public: - link_ptr next_; - - bucket() : next_() - { - BOOST_UNORDERED_MSVC_RESET_PTR(next_); - } - - bucket(bucket const& x) : next_(x.next_) - { - // Only copy construct when allocating. - BOOST_ASSERT(!x.next_); - } - - bool empty() const - { - return !this->next_; - } - }; - - // Value Base - - struct value_base { - typename boost::aligned_storage< - sizeof(value_type), - boost::alignment_of::value>::type data_; - - void* address() { return this; } - }; - - // Hash Node - // - // all no throw - - struct node : value_base, bucket { -#if BOOST_UNORDERED_EQUIVALENT_KEYS - public: - node() : group_prev_() - { - BOOST_UNORDERED_MSVC_RESET_PTR(group_prev_); - } - - link_ptr group_prev_; -#endif - - value_type& value() { - return *static_cast(this->address()); - } - }; - // allocators // // Stores all the allocators that we're going to need. @@ -1103,7 +1069,7 @@ namespace boost { // This can throw, but BOOST_UNORDERED_TABLE_DATA's destructor will clean // up. - copy_buckets(x.data_, data_, functions_.current()); + x.copy_buckets_to(data_); } // Copy Construct with allocator @@ -1118,7 +1084,7 @@ namespace boost { // This can throw, but BOOST_UNORDERED_TABLE_DATA's destructor will clean // up. - copy_buckets(x.data_, data_, functions_.current()); + x.copy_buckets_to(data_); } // Move Construct @@ -1143,14 +1109,14 @@ namespace boost { if(x.data_.buckets_) { // This can throw, but BOOST_UNORDERED_TABLE_DATA's destructor will clean // up. - copy_buckets(x.data_, data_, functions_.current()); + x.copy_buckets_to(data_); } } // Assign // // basic exception safety, if buffered_functions::buffer or reserver throws - // the container is left in a sane, empty state. If copy_buckets + // the container is left in a sane, empty state. If copy_buckets_to // throws the container is left with whatever was successfully // copied. @@ -1164,7 +1130,7 @@ namespace boost { mlf_ = x.mlf_; // no throw calculate_max_load(); // no throw reserve(x.size()); // throws - copy_buckets(x.data_, data_, functions_.current()); // throws + x.copy_buckets_to(data_); // throws } return *this; @@ -1207,10 +1173,10 @@ namespace boost { // which will clean up if anything throws an exception. // (all can throw, but with no effect as these are new objects). data new_this(data_, x.min_buckets_for_size(x.data_.size_)); - copy_buckets(x.data_, new_this, functions_.*new_func_this); + x.copy_buckets_to(new_this); data new_that(x.data_, min_buckets_for_size(data_.size_)); - x.copy_buckets(data_, new_that, x.functions_.*new_func_that); + copy_buckets_to(new_that); // Start updating the data here, no throw from now on. data_.swap(new_this); @@ -1251,7 +1217,7 @@ namespace boost { // which will clean up if anything throws an exception. // (all can throw, but with no effect as these are new objects). data new_this(data_, x.min_buckets_for_size(x.data_.size_)); - copy_buckets(x.data_, new_this, functions_.*new_func_this); + x.copy_buckets_to(new_this); // Start updating the data here, no throw from now on. data_.move(new_this); @@ -1494,22 +1460,23 @@ namespace boost { return; data new_buckets(data_, n); // throws, seperate - move_buckets(data_, new_buckets, hash_function()); - // basic/no throw + move_buckets_to(new_buckets); // basic/no throw new_buckets.swap(data_); // no throw calculate_max_load(); // no throw } - // move_buckets & copy_buckets + // move_buckets_to & copy_buckets_to // // if the hash function throws, basic excpetion safety // no throw otherwise - static void move_buckets(data& src, data& dst, hasher const& hf) + void move_buckets_to(data& dst) { BOOST_ASSERT(dst.size_ == 0); //BOOST_ASSERT(src.allocators_.node_alloc_ == dst.allocators_.node_alloc_); + data& src = this->data_; + hasher const& hf = this->hash_function(); bucket_ptr end = src.buckets_end(); for(; src.cached_begin_bucket_ != end; @@ -1533,12 +1500,14 @@ namespace boost { // basic excpetion safety. If an exception is thrown this will // leave dst partially filled. - static void copy_buckets(data const& src, data& dst, functions const& f) + void copy_buckets_to(data& dst) const { BOOST_ASSERT(dst.size_ == 0); + // no throw: + data const& src = this->data_; + hasher const& hf = this->hash_function(); bucket_ptr end = src.buckets_end(); - hasher const& hf = f.hash_function(); // no throw: for(bucket_ptr i = src.cached_begin_bucket_; i != end; ++i) { @@ -2322,6 +2291,7 @@ namespace boost { } #undef BOOST_UNORDERED_TABLE +#undef BOOST_UNORDERED_TABLE_NODE #undef BOOST_UNORDERED_TABLE_DATA #undef BOOST_UNORDERED_ITERATOR #undef BOOST_UNORDERED_CONST_ITERATOR diff --git a/include/boost/unordered/unordered_map.hpp b/include/boost/unordered/unordered_map.hpp index 69e5522e..f787de2a 100644 --- a/include/boost/unordered/unordered_map.hpp +++ b/include/boost/unordered/unordered_map.hpp @@ -1,6 +1,6 @@ // Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard. -// Copyright (C) 2005-2008 Daniel James. +// Copyright (C) 2005-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/include/boost/unordered/unordered_map_fwd.hpp b/include/boost/unordered/unordered_map_fwd.hpp index ceb77fc0..bbd81627 100644 --- a/include/boost/unordered/unordered_map_fwd.hpp +++ b/include/boost/unordered/unordered_map_fwd.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2008 Daniel James. +// Copyright (C) 2008-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/include/boost/unordered/unordered_set.hpp b/include/boost/unordered/unordered_set.hpp index 8f39c87e..4e9f39bb 100644 --- a/include/boost/unordered/unordered_set.hpp +++ b/include/boost/unordered/unordered_set.hpp @@ -1,6 +1,6 @@ // Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard. -// Copyright (C) 2005-2008 Daniel James. +// Copyright (C) 2005-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/include/boost/unordered/unordered_set_fwd.hpp b/include/boost/unordered/unordered_set_fwd.hpp index 48a2caac..6b3f74e7 100644 --- a/include/boost/unordered/unordered_set_fwd.hpp +++ b/include/boost/unordered/unordered_set_fwd.hpp @@ -1,5 +1,5 @@ -// Copyright (C) 2008 Daniel James. +// Copyright (C) 2008-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/exception/assign_exception_tests.cpp b/test/exception/assign_exception_tests.cpp index 505eeafe..ebf7ac0e 100644 --- a/test/exception/assign_exception_tests.cpp +++ b/test/exception/assign_exception_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/exception/constructor_exception_tests.cpp b/test/exception/constructor_exception_tests.cpp index c28fba37..bda812af 100644 --- a/test/exception/constructor_exception_tests.cpp +++ b/test/exception/constructor_exception_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/exception/containers.hpp b/test/exception/containers.hpp index ceb59690..23c9e495 100644 --- a/test/exception/containers.hpp +++ b/test/exception/containers.hpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/exception/copy_exception_tests.cpp b/test/exception/copy_exception_tests.cpp index e975231c..01bbbdaa 100644 --- a/test/exception/copy_exception_tests.cpp +++ b/test/exception/copy_exception_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/exception/erase_exception_tests.cpp b/test/exception/erase_exception_tests.cpp index 85216285..3f227263 100644 --- a/test/exception/erase_exception_tests.cpp +++ b/test/exception/erase_exception_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/exception/insert_exception_tests.cpp b/test/exception/insert_exception_tests.cpp index 26234adc..8965e070 100644 --- a/test/exception/insert_exception_tests.cpp +++ b/test/exception/insert_exception_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/exception/rehash_exception_tests.cpp b/test/exception/rehash_exception_tests.cpp index 7fb9af80..7e69e748 100644 --- a/test/exception/rehash_exception_tests.cpp +++ b/test/exception/rehash_exception_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/exception/swap_exception_tests.cpp b/test/exception/swap_exception_tests.cpp index 9fcd425e..0e77e588 100644 --- a/test/exception/swap_exception_tests.cpp +++ b/test/exception/swap_exception_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/allocator.hpp b/test/helpers/allocator.hpp index 676f24b0..e41259b0 100644 --- a/test/helpers/allocator.hpp +++ b/test/helpers/allocator.hpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/check_return_type.hpp b/test/helpers/check_return_type.hpp index 0e692f9a..bfcaab41 100644 --- a/test/helpers/check_return_type.hpp +++ b/test/helpers/check_return_type.hpp @@ -1,5 +1,5 @@ -// Copyright 2005-2008 Daniel James. +// Copyright 2005-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/count.hpp b/test/helpers/count.hpp index 15bff3b0..11e00e9f 100644 --- a/test/helpers/count.hpp +++ b/test/helpers/count.hpp @@ -1,5 +1,5 @@ -// Copyright 2008 Daniel James. +// Copyright 2008-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or move at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/equivalent.hpp b/test/helpers/equivalent.hpp index dedadc77..216afb6c 100644 --- a/test/helpers/equivalent.hpp +++ b/test/helpers/equivalent.hpp @@ -1,5 +1,5 @@ -// Copyright 2005-2008 Daniel James. +// Copyright 2005-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/exception_test.hpp b/test/helpers/exception_test.hpp index 8d216cdd..699d5abb 100644 --- a/test/helpers/exception_test.hpp +++ b/test/helpers/exception_test.hpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/fwd.hpp b/test/helpers/fwd.hpp index 87856c5b..ddff09c5 100644 --- a/test/helpers/fwd.hpp +++ b/test/helpers/fwd.hpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/generators.hpp b/test/helpers/generators.hpp index 967f00a4..15441524 100644 --- a/test/helpers/generators.hpp +++ b/test/helpers/generators.hpp @@ -1,5 +1,5 @@ -// Copyright 2005-2008 Daniel James. +// Copyright 2005-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/helpers.hpp b/test/helpers/helpers.hpp index 4ee63438..79132c4d 100644 --- a/test/helpers/helpers.hpp +++ b/test/helpers/helpers.hpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/input_iterator.hpp b/test/helpers/input_iterator.hpp index 58341bef..ec864b7e 100644 --- a/test/helpers/input_iterator.hpp +++ b/test/helpers/input_iterator.hpp @@ -1,5 +1,5 @@ -// Copyright 2005-2008 Daniel James. +// Copyright 2005-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/invariants.hpp b/test/helpers/invariants.hpp index 09f2e3e8..199eb46b 100644 --- a/test/helpers/invariants.hpp +++ b/test/helpers/invariants.hpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/list.hpp b/test/helpers/list.hpp index 7a234d69..5a3b6e83 100644 --- a/test/helpers/list.hpp +++ b/test/helpers/list.hpp @@ -1,5 +1,5 @@ -// Copyright 2008 Daniel James. +// Copyright 2008-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -144,6 +144,7 @@ namespace test list& operator=(list const& other) { clear(); insert(other.begin(), other.end()); + return *this; } iterator begin() { return iterator(data_.first_); } @@ -242,14 +243,28 @@ namespace test node** merge_adjacent_ranges(node** first, node** second, node** third, Less less) { - while(first != second) { - if(less((*second)->value_, (*first)->value_)) { - swap_adjacent_ranges(first, second, third); - std::swap(second, third); + while(true) { + while(true) { + if(first == second) return third; + if(less((*second)->value_, (*first)->value_)) break; + first = &(*first)->next_; } + + swap_adjacent_ranges(first, second, third); + first = &(*first)->next_; + + // Since the two ranges we just swapped, the order is now: + // first...third...second + + while(true) { + if(first == third) return second; + if(!less((*first)->value_, (*third)->value_)) break; + first = &(*first)->next_; + } + + swap_adjacent_ranges(first, third, second); first = &(*first)->next_; } - return third; } void swap_adjacent_ranges(node** first, node** second, node** third) diff --git a/test/helpers/memory.hpp b/test/helpers/memory.hpp index 29424d84..f4ac8a11 100644 --- a/test/helpers/memory.hpp +++ b/test/helpers/memory.hpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/metafunctions.hpp b/test/helpers/metafunctions.hpp index a3b0eb04..8c8afaaa 100644 --- a/test/helpers/metafunctions.hpp +++ b/test/helpers/metafunctions.hpp @@ -1,5 +1,5 @@ -// Copyright 2005-2008 Daniel James. +// Copyright 2005-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/random_values.hpp b/test/helpers/random_values.hpp index 07d83efd..0d71ea1d 100644 --- a/test/helpers/random_values.hpp +++ b/test/helpers/random_values.hpp @@ -1,5 +1,5 @@ -// Copyright 2005-2008 Daniel James. +// Copyright 2005-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/strong.hpp b/test/helpers/strong.hpp index c23e66c2..4ffcca2b 100644 --- a/test/helpers/strong.hpp +++ b/test/helpers/strong.hpp @@ -1,5 +1,5 @@ -// Copyright 2005-2008 Daniel James. +// Copyright 2005-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/test.hpp b/test/helpers/test.hpp index d3c177b1..136cf756 100644 --- a/test/helpers/test.hpp +++ b/test/helpers/test.hpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/helpers/tracker.hpp b/test/helpers/tracker.hpp index 44deb4f1..612f0edc 100644 --- a/test/helpers/tracker.hpp +++ b/test/helpers/tracker.hpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/objects/exception.hpp b/test/objects/exception.hpp index c75880d3..25f783ec 100644 --- a/test/objects/exception.hpp +++ b/test/objects/exception.hpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/objects/fwd.hpp b/test/objects/fwd.hpp index 37472529..46e434cb 100644 --- a/test/objects/fwd.hpp +++ b/test/objects/fwd.hpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/objects/minimal.hpp b/test/objects/minimal.hpp index 07441f09..535a7684 100644 --- a/test/objects/minimal.hpp +++ b/test/objects/minimal.hpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/objects/test.hpp b/test/objects/test.hpp index 04bdd4bb..28fc5e53 100644 --- a/test/objects/test.hpp +++ b/test/objects/test.hpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/assign_tests.cpp b/test/unordered/assign_tests.cpp index 76d81ec5..b2a4b1c3 100644 --- a/test/unordered/assign_tests.cpp +++ b/test/unordered/assign_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/at_tests.cpp b/test/unordered/at_tests.cpp index 12ec0222..798bf9d4 100644 --- a/test/unordered/at_tests.cpp +++ b/test/unordered/at_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2007-2008 Daniel James. +// Copyright 2007-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/bucket_tests.cpp b/test/unordered/bucket_tests.cpp index d8b93d09..e4326ed1 100644 --- a/test/unordered/bucket_tests.cpp +++ b/test/unordered/bucket_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/compile_map.cpp b/test/unordered/compile_map.cpp index 0e870fc6..378d7c67 100644 --- a/test/unordered/compile_map.cpp +++ b/test/unordered/compile_map.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/compile_set.cpp b/test/unordered/compile_set.cpp index b1bc107c..e0de7bd9 100644 --- a/test/unordered/compile_set.cpp +++ b/test/unordered/compile_set.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/compile_tests.hpp b/test/unordered/compile_tests.hpp index 9ace8597..486d3e2e 100644 --- a/test/unordered/compile_tests.hpp +++ b/test/unordered/compile_tests.hpp @@ -1,5 +1,5 @@ -// Copyright 2005-2008 Daniel James. +// Copyright 2005-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/constructor_tests.cpp b/test/unordered/constructor_tests.cpp index a56f7905..231365a5 100644 --- a/test/unordered/constructor_tests.cpp +++ b/test/unordered/constructor_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/copy_tests.cpp b/test/unordered/copy_tests.cpp index 30fe55a0..b30df849 100644 --- a/test/unordered/copy_tests.cpp +++ b/test/unordered/copy_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/equality_tests.cpp b/test/unordered/equality_tests.cpp index 997e609d..1679cf86 100644 --- a/test/unordered/equality_tests.cpp +++ b/test/unordered/equality_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2008 Daniel James. +// Copyright 2008-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/equivalent_keys_tests.cpp b/test/unordered/equivalent_keys_tests.cpp index b2bad93f..295ec721 100644 --- a/test/unordered/equivalent_keys_tests.cpp +++ b/test/unordered/equivalent_keys_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/erase_equiv_tests.cpp b/test/unordered/erase_equiv_tests.cpp index 838b088e..0bf7ab53 100644 --- a/test/unordered/erase_equiv_tests.cpp +++ b/test/unordered/erase_equiv_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/erase_tests.cpp b/test/unordered/erase_tests.cpp index 0c42e613..74da3cf8 100644 --- a/test/unordered/erase_tests.cpp +++ b/test/unordered/erase_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/find_tests.cpp b/test/unordered/find_tests.cpp index 85f6c8ed..77f6caeb 100644 --- a/test/unordered/find_tests.cpp +++ b/test/unordered/find_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/fwd_map_test.cpp b/test/unordered/fwd_map_test.cpp index a0d118e5..e5e905c2 100644 --- a/test/unordered/fwd_map_test.cpp +++ b/test/unordered/fwd_map_test.cpp @@ -1,5 +1,5 @@ -// Copyright 2008 Daniel James. +// Copyright 2008-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/fwd_set_test.cpp b/test/unordered/fwd_set_test.cpp index 3b39f8b3..9ea0c478 100644 --- a/test/unordered/fwd_set_test.cpp +++ b/test/unordered/fwd_set_test.cpp @@ -1,5 +1,5 @@ -// Copyright 2008 Daniel James. +// Copyright 2008-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/insert_stable_tests.cpp b/test/unordered/insert_stable_tests.cpp index d828feeb..01ec3969 100644 --- a/test/unordered/insert_stable_tests.cpp +++ b/test/unordered/insert_stable_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2007-2008 Daniel James. +// Copyright 2007-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/insert_tests.cpp b/test/unordered/insert_tests.cpp index 98e4a85e..9434cba0 100644 --- a/test/unordered/insert_tests.cpp +++ b/test/unordered/insert_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/link_test_1.cpp b/test/unordered/link_test_1.cpp index b6123af2..33f709ff 100644 --- a/test/unordered/link_test_1.cpp +++ b/test/unordered/link_test_1.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/link_test_2.cpp b/test/unordered/link_test_2.cpp index 5b6b981f..4735abdf 100644 --- a/test/unordered/link_test_2.cpp +++ b/test/unordered/link_test_2.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/load_factor_tests.cpp b/test/unordered/load_factor_tests.cpp index d58c13d5..b54f1d7a 100644 --- a/test/unordered/load_factor_tests.cpp +++ b/test/unordered/load_factor_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/move_tests.cpp b/test/unordered/move_tests.cpp index 089f37f3..c6e8c3c5 100644 --- a/test/unordered/move_tests.cpp +++ b/test/unordered/move_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2008 Daniel James. +// Copyright 2008-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or move at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/rehash_tests.cpp b/test/unordered/rehash_tests.cpp index cfcc41cb..e346a567 100644 --- a/test/unordered/rehash_tests.cpp +++ b/test/unordered/rehash_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/simple_tests.cpp b/test/unordered/simple_tests.cpp index 8e3c7dfd..09e48bfc 100644 --- a/test/unordered/simple_tests.cpp +++ b/test/unordered/simple_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/swap_tests.cpp b/test/unordered/swap_tests.cpp index a036362c..f7b02769 100644 --- a/test/unordered/swap_tests.cpp +++ b/test/unordered/swap_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/test/unordered/unnecessary_copy_tests.cpp b/test/unordered/unnecessary_copy_tests.cpp index 18d36525..df4baf3c 100644 --- a/test/unordered/unnecessary_copy_tests.cpp +++ b/test/unordered/unnecessary_copy_tests.cpp @@ -1,5 +1,5 @@ -// Copyright 2006-2008 Daniel James. +// Copyright 2006-2009 Daniel James. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)