diff options
author | Anas Nashif <anas.nashif@intel.com> | 2013-08-26 08:15:55 -0400 |
---|---|---|
committer | Anas Nashif <anas.nashif@intel.com> | 2013-08-26 08:15:55 -0400 |
commit | bb4dd8289b351fae6b55e303f189127a394a1edd (patch) | |
tree | 77c9c35a31b1459dd7988c2448e797d142530c41 /libs/move/test/back_move_inserter.cpp | |
parent | 1a78a62555be32868418fe52f8e330c9d0f95d5a (diff) | |
download | boost-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.cpp | 49 |
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; } |