diff options
Diffstat (limited to 'libs/move')
-rw-r--r-- | libs/move/doc/move.qbk | 8 | ||||
-rw-r--r-- | libs/move/example/doc_clone_ptr.cpp | 2 | ||||
-rw-r--r-- | libs/move/test/back_move_inserter.cpp | 49 |
3 files changed, 41 insertions, 18 deletions
diff --git a/libs/move/doc/move.qbk b/libs/move/doc/move.qbk index bd90baa33d..7224176273 100644 --- a/libs/move/doc/move.qbk +++ b/libs/move/doc/move.qbk @@ -787,6 +787,14 @@ Many thanks to all boosters that have tested, reviewed and improved the library. [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/7095 #7095], + [@https://svn.boost.org/trac/boost/ticket/7031 #7031]. + +[endsect] + [section:release_notes_boost_1_49_00 Boost 1.49 Release] * Fixed bugs diff --git a/libs/move/example/doc_clone_ptr.cpp b/libs/move/example/doc_clone_ptr.cpp index 280c94ca21..56c0816e60 100644 --- a/libs/move/example/doc_clone_ptr.cpp +++ b/libs/move/example/doc_clone_ptr.cpp @@ -30,6 +30,8 @@ class Base virtual Base *clone() const { return new Base(*this); } + + virtual ~Base(){} }; class Member diff --git a/libs/move/test/back_move_inserter.cpp b/libs/move/test/back_move_inserter.cpp index ca4720bf3d..150512519c 100644 --- a/libs/move/test/back_move_inserter.cpp +++ b/libs/move/test/back_move_inserter.cpp @@ -17,29 +17,42 @@ template<class Container> int move_test() { - //Default construct 10 movable objects - Container v(10); + bool use_move_iterator = false; + bool done = false; + while(!done){ + //Default construct 10 movable objects + Container v(10); - //Test default constructed value - if(v.begin()->moved()){ - return 1; - } + //Test default constructed value + if(v.begin()->moved()){ + return 1; + } - //Move values - Container v2; - std::copy(v.begin(), v.end(), boost::back_move_inserter(v2)); + //Move values + Container v2; + if(use_move_iterator){ + ::boost::copy_or_move( boost::make_move_iterator(v.begin()) + , boost::make_move_iterator(v.end()) + , boost::back_move_inserter(v2)); + } + else{ + std::copy(v.begin(), v.end(), boost::back_move_inserter(v2)); + } - //Test values have been moved - if(!v.begin()->moved()){ - return 1; - } + //Test values have been moved + if(!v.begin()->moved()){ + return 1; + } - if(v2.size() != 10){ - return 1; - } + if(v2.size() != 10){ + return 1; + } - if(v2.begin()->moved()){ - return 1; + if(v2.begin()->moved()){ + return 1; + } + done = use_move_iterator; + use_move_iterator = true; } return 0; } |