summaryrefslogtreecommitdiff
path: root/libs/move/test/back_move_inserter.cpp
diff options
context:
space:
mode:
authorAnas Nashif <anas.nashif@intel.com>2013-08-26 08:15:55 -0400
committerAnas Nashif <anas.nashif@intel.com>2013-08-26 08:15:55 -0400
commitbb4dd8289b351fae6b55e303f189127a394a1edd (patch)
tree77c9c35a31b1459dd7988c2448e797d142530c41 /libs/move/test/back_move_inserter.cpp
parent1a78a62555be32868418fe52f8e330c9d0f95d5a (diff)
downloadboost-bb4dd8289b351fae6b55e303f189127a394a1edd.tar.gz
boost-bb4dd8289b351fae6b55e303f189127a394a1edd.tar.bz2
boost-bb4dd8289b351fae6b55e303f189127a394a1edd.zip
Imported Upstream version 1.51.0upstream/1.51.0
Diffstat (limited to 'libs/move/test/back_move_inserter.cpp')
-rw-r--r--libs/move/test/back_move_inserter.cpp49
1 files changed, 31 insertions, 18 deletions
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;
}