summaryrefslogtreecommitdiff
path: root/libs/move
diff options
context:
space:
mode:
Diffstat (limited to 'libs/move')
-rw-r--r--libs/move/doc/move.qbk8
-rw-r--r--libs/move/example/doc_clone_ptr.cpp2
-rw-r--r--libs/move/test/back_move_inserter.cpp49
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;
}