From b8034a8d2011548b5afe71eabc066177659cdc75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Sat, 1 Dec 2012 22:56:12 +0000 Subject: [PATCH] Merged intrusive from trunk [SVN r81662] --- doc/intrusive.qbk | 10 +- include/boost/intrusive/avl_set.hpp | 8 +- include/boost/intrusive/avltree.hpp | 16 +- .../intrusive/circular_list_algorithms.hpp | 2 +- .../boost/intrusive/detail/memory_util.hpp | 8 +- .../intrusive/detail/tree_algorithms.hpp | 2 +- include/boost/intrusive/detail/workaround.hpp | 2 +- include/boost/intrusive/hashtable.hpp | 208 +++++------ include/boost/intrusive/list.hpp | 26 +- include/boost/intrusive/pointer_traits.hpp | 6 +- include/boost/intrusive/rbtree.hpp | 4 +- include/boost/intrusive/set.hpp | 8 +- include/boost/intrusive/sg_set.hpp | 8 +- include/boost/intrusive/sgtree.hpp | 12 +- include/boost/intrusive/slist.hpp | 338 +++++++++++------- include/boost/intrusive/splay_set.hpp | 8 +- include/boost/intrusive/splaytree.hpp | 8 +- include/boost/intrusive/treap.hpp | 20 +- include/boost/intrusive/treap_set.hpp | 12 +- include/boost/intrusive/unordered_set.hpp | 16 +- test/generic_assoc_test.hpp | 10 +- test/generic_multiset_test.hpp | 2 +- test/generic_set_test.hpp | 2 +- test/pointer_traits_test.cpp | 2 +- test/stateful_value_traits_test.cpp | 4 +- test/test_container.hpp | 18 +- test/unordered_multiset_test.cpp | 224 ++++++------ 27 files changed, 535 insertions(+), 449 deletions(-) diff --git a/doc/intrusive.qbk b/doc/intrusive.qbk index 7dd3d18..deba9a0 100644 --- a/doc/intrusive.qbk +++ b/doc/intrusive.qbk @@ -6,7 +6,7 @@ /] [library Boost.Intrusive - [quickbook 1.4] + [quickbook 1.5] [authors [Krzikalla, Olaf], [Gaztanaga, Ion]] [copyright 2005 Olaf Krzikalla, 2006-2012 Ion Gaztanaga] [id intrusive] @@ -3829,6 +3829,14 @@ all the objects to be inserted in intrusive containers in containers like `std:: [section:release_notes Release Notes] +[section:release_notes_boost_1_53_00 Boost 1.53 Release] + +* Fixed GCC -Wshadow warnings. +* Added missing `explicit` keyword in several intrusive container constructors. +* Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros. + +[endsect] + [section:release_notes_boost_1_51_00 Boost 1.51 Release] * Fixed bugs diff --git a/include/boost/intrusive/avl_set.hpp b/include/boost/intrusive/avl_set.hpp index 91e2dbb..9e17aa7 100644 --- a/include/boost/intrusive/avl_set.hpp +++ b/include/boost/intrusive/avl_set.hpp @@ -86,8 +86,8 @@ class avl_set_impl //! Throws: If value_traits::node_traits::node //! constructor throws (this does not happen with predefined Boost.Intrusive hooks) //! or the copy constructor of the value_compare object throws. - avl_set_impl( const value_compare &cmp = value_compare() - , const value_traits &v_traits = value_traits()) + explicit avl_set_impl( const value_compare &cmp = value_compare() + , const value_traits &v_traits = value_traits()) : tree_(cmp, v_traits) {} @@ -1381,8 +1381,8 @@ class avl_multiset_impl //! Throws: If value_traits::node_traits::node //! constructor throws (this does not happen with predefined Boost.Intrusive hooks) //! or the copy constructor/operator() of the value_compare object throws. - avl_multiset_impl( const value_compare &cmp = value_compare() - , const value_traits &v_traits = value_traits()) + explicit avl_multiset_impl( const value_compare &cmp = value_compare() + , const value_traits &v_traits = value_traits()) : tree_(cmp, v_traits) {} diff --git a/include/boost/intrusive/avltree.hpp b/include/boost/intrusive/avltree.hpp index 71e7943..b6311c4 100644 --- a/include/boost/intrusive/avltree.hpp +++ b/include/boost/intrusive/avltree.hpp @@ -219,8 +219,8 @@ class avltree_impl //! Throws: If value_traits::node_traits::node //! constructor throws (this does not happen with predefined Boost.Intrusive hooks) //! or the copy constructor of the value_compare object throws. Basic guarantee. - avltree_impl( const value_compare &cmp = value_compare() - , const value_traits &v_traits = value_traits()) + explicit avltree_impl( const value_compare &cmp = value_compare() + , const value_traits &v_traits = value_traits()) : data_(cmp, v_traits) { node_algorithms::init_header(this->priv_header_ptr()); @@ -542,9 +542,9 @@ class avltree_impl template void insert_equal(Iterator b, Iterator e) { - iterator end_(this->end()); + iterator iend(this->end()); for (; b != e; ++b) - this->insert_equal(end_, *b); + this->insert_equal(iend, *b); } //! Requires: value must be an lvalue @@ -608,9 +608,9 @@ class avltree_impl void insert_unique(Iterator b, Iterator e) { if(this->empty()){ - iterator end_(this->end()); + iterator iend(this->end()); for (; b != e; ++b) - this->insert_unique(end_, *b); + this->insert_unique(iend, *b); } else{ for (; b != e; ++b) @@ -1249,7 +1249,7 @@ class avltree_impl //! Requires: KeyValueCompare is a function object that induces a strict weak //! ordering compatible with the strict weak ordering used to create the - //! the tree. + //! the tree. //! 'lower_key' must not be greater than 'upper_key' according to 'comp'. If //! 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be false. //! @@ -1298,7 +1298,7 @@ class avltree_impl //! Requires: KeyValueCompare is a function object that induces a strict weak //! ordering compatible with the strict weak ordering used to create the - //! the tree. + //! the tree. //! 'lower_key' must not be greater than 'upper_key' according to 'comp'. If //! 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be false. //! diff --git a/include/boost/intrusive/circular_list_algorithms.hpp b/include/boost/intrusive/circular_list_algorithms.hpp index 282f474..5add320 100644 --- a/include/boost/intrusive/circular_list_algorithms.hpp +++ b/include/boost/intrusive/circular_list_algorithms.hpp @@ -174,7 +174,7 @@ class circular_list_algorithms NodeTraits::set_previous(this_node, prev); NodeTraits::set_next(this_node, nxt_node); //nxt_node might be an alias for prev->next_ - //so use it before update it before NodeTraits::set_next(prev, ...) + //so use it before NodeTraits::set_next(prev, ...) //is called and the reference changes it's value NodeTraits::set_previous(nxt_node, this_node); NodeTraits::set_next(prev, this_node); diff --git a/include/boost/intrusive/detail/memory_util.hpp b/include/boost/intrusive/detail/memory_util.hpp index 1a6431b..7f69f91 100644 --- a/include/boost/intrusive/detail/memory_util.hpp +++ b/include/boost/intrusive/detail/memory_util.hpp @@ -149,7 +149,7 @@ BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(difference_type) template struct first_param { typedef void type; }; -#if !defined(BOOST_NO_VARIADIC_TEMPLATES) +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) template