From d535f151e7511870c99c6036fab8c98053b69057 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Mon, 16 Jul 2012 09:04:33 +0000 Subject: [PATCH] Merged from trunk [SVN r79559] --- doc/container.qbk | 20 +++++++-- proj/to-do.txt | 6 ++- proj/vc7ide/container.vcproj | 3 ++ test/dummy_test_allocator.hpp | 2 +- test/expand_bwd_test_allocator.hpp | 2 +- test/flat_tree_test.cpp | 56 +------------------------- test/scoped_allocator_adaptor_test.cpp | 15 +++---- test/stable_vector_test.cpp | 6 +-- test/util.hpp | 2 +- 9 files changed, 40 insertions(+), 72 deletions(-) diff --git a/doc/container.qbk b/doc/container.qbk index ee4cf42..65d4e90 100644 --- a/doc/container.qbk +++ b/doc/container.qbk @@ -439,7 +439,7 @@ not constructed on the fly when auxiliary memory is needed). [section:scoped_allocator Scoped allocators] C++11 improves stateful allocators with the introduction of -[@http://http://en.cppreference.com/w/cpp/memory/scoped_allocator_adaptor `std::scoped_allocator_adaptor`] +[@http://en.cppreference.com/w/cpp/memory/scoped_allocator_adaptor `std::scoped_allocator_adaptor`] class template. `scoped_allocator_adaptor` is instantiated with one outer allocator and zero or more inner allocators. @@ -614,18 +614,30 @@ use [*Boost.Container]? There are several reasons for that: [section:release_notes Release Notes] +[section:release_notes_boost_1_51_00 Boost 1.51 Release] + +* Fixed bugs + [@https://svn.boost.org/trac/boost/ticket/6763 #6763], + [@https://svn.boost.org/trac/boost/ticket/6803 #6803], + [@https://svn.boost.org/trac/boost/ticket/7114 #7114], + [@https://svn.boost.org/trac/boost/ticket/7103 #7103]. + [@https://svn.boost.org/trac/boost/ticket/7123 #7123], + + +[endsect] + [section:release_notes_boost_1_50_00 Boost 1.50 Release] * Added Scoped Allocator Model support. * Fixed bugs + [@https://svn.boost.org/trac/boost/ticket/6533 #6533], + [@https://svn.boost.org/trac/boost/ticket/6536 #6536], [@https://svn.boost.org/trac/boost/ticket/6566 #6566], [@https://svn.boost.org/trac/boost/ticket/6575 #6575], [@https://svn.boost.org/trac/boost/ticket/6606 #6606], [@https://svn.boost.org/trac/boost/ticket/6615 #6615], - [@https://svn.boost.org/trac/boost/ticket/6533 #6533], - [@https://svn.boost.org/trac/boost/ticket/6536 #6536], - + [endsect] diff --git a/proj/to-do.txt b/proj/to-do.txt index 1152393..072519c 100644 --- a/proj/to-do.txt +++ b/proj/to-do.txt @@ -36,4 +36,8 @@ check move if noexcept conditions in vector, deque and stable_vector Detect always equal or unequal allocators at compiler time. operator== returns true_type or false_type -change virtual functions with pointers to avoid template instantiation for every type \ No newline at end of file +change virtual functions with pointers to avoid template instantiation for every type + +Add hash for containers + +Add std:: hashing support \ No newline at end of file diff --git a/proj/vc7ide/container.vcproj b/proj/vc7ide/container.vcproj index 50610a6..fcd9e8a 100644 --- a/proj/vc7ide/container.vcproj +++ b/proj/vc7ide/container.vcproj @@ -203,6 +203,9 @@ + + diff --git a/test/dummy_test_allocator.hpp b/test/dummy_test_allocator.hpp index 332892e..dd0d872 100644 --- a/test/dummy_test_allocator.hpp +++ b/test/dummy_test_allocator.hpp @@ -111,7 +111,7 @@ class dummy_test_allocator dummy_test_allocator(const dummy_test_allocator &) {} - pointer address(reference value) + pointer address(reference value) { return pointer(container_detail::addressof(value)); } const_pointer address(const_reference value) const diff --git a/test/expand_bwd_test_allocator.hpp b/test/expand_bwd_test_allocator.hpp index fbab8c7..556a26c 100644 --- a/test/expand_bwd_test_allocator.hpp +++ b/test/expand_bwd_test_allocator.hpp @@ -108,7 +108,7 @@ class expand_bwd_test_allocator { return m_size; } friend void swap(self_t &alloc1, self_t &alloc2) - { + { container_detail::do_swap(alloc1.mp_buffer, alloc2.mp_buffer); container_detail::do_swap(alloc1.m_size, alloc2.m_size); container_detail::do_swap(alloc1.m_offset, alloc2.m_offset); diff --git a/test/flat_tree_test.cpp b/test/flat_tree_test.cpp index ba3d450..c6738e2 100644 --- a/test/flat_tree_test.cpp +++ b/test/flat_tree_test.cpp @@ -26,7 +26,7 @@ using namespace boost::container; namespace boost { namespace container { -/* + //Explicit instantiation to detect compilation errors //flat_map @@ -115,7 +115,7 @@ template class flat_multiset , std::less , std::allocator >; -*/ + }} //boost::container @@ -627,55 +627,3 @@ int main() } #include - -/* -#include -#include -#include -#include -#include - -struct Request -{ - Request() {}; - - //Move semantics... - Request(BOOST_RV_REF(Request) r) : rvals() //Move constructor - { - rvals.swap(r.rvals); - }; - - Request& operator=(BOOST_RV_REF(Request) r) //Move assignment - { - if (this != &r){ - rvals.swap(r.rvals); - } - return *this; - }; - - // Values I want to be moved, not copied. - boost::container::vector rvals; - - private: - // Mark this class movable but not copyable - BOOST_MOVABLE_BUT_NOT_COPYABLE(Request) -}; - -typedef boost::container::flat_map Requests; -//typedef boost::container::map Requests2; - -int -main() { - Requests req; - - Requests::value_type v; - std::pair ret = req.insert( boost::move(v)); - //std::cout << "Insert success for req: " << ret.second << std::endl; - - //Requests2 req2; - //std::pair ret2 = req2.insert( Requests2::value_type( 7, Request() ) ); - //std::cout << "Insert success for req2: " << ret2.second << std::endl; - - return 0; -} -*/ diff --git a/test/scoped_allocator_adaptor_test.cpp b/test/scoped_allocator_adaptor_test.cpp index 6afca6e..66d86b0 100644 --- a/test/scoped_allocator_adaptor_test.cpp +++ b/test/scoped_allocator_adaptor_test.cpp @@ -8,20 +8,15 @@ // ////////////////////////////////////////////////////////////////////////////// #include -#include +#include #include -#include -#include -#include #include #include +#include #include -#include -#include using namespace boost::container; - template class test_allocator { @@ -242,6 +237,12 @@ struct constructible_with_allocator_suffix } //namespace boost { +#include +#include +#include +#include +#include + int main() { typedef test_allocator, 0> OuterAlloc; diff --git a/test/stable_vector_test.cpp b/test/stable_vector_test.cpp index c69efe4..fe7d9e1 100644 --- a/test/stable_vector_test.cpp +++ b/test/stable_vector_test.cpp @@ -30,13 +30,13 @@ namespace boost { namespace container { //Explicit instantiation to detect compilation errors -template class stable_vector >; -template class stable_vector >; -template class stable_vector >; }} diff --git a/test/util.hpp b/test/util.hpp index 639c17b..9bfe1af 100644 --- a/test/util.hpp +++ b/test/util.hpp @@ -71,7 +71,7 @@ inline bool in_range(const boost::posix_time::ptime& xt, int secs=1) boost::xtime xsecs(int secs) { boost::xtime ret; - boost::xtime_get(&ret, boost::TIME_UTC_); + boost::xtime_get(&ret, boost::TIME_UTC); ret.sec += secs; return ret; }