////////////////////////////////////////////////////////////////////////////// // // (C) Copyright Ion Gaztanaga 2009. // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // // See http://www.boost.org/libs/move for documentation. // ////////////////////////////////////////////////////////////////////////////// #include <boost/move/detail/config_begin.hpp> //[move_iterator_example #include <boost/container/vector.hpp> #include "movable.hpp" #include <cassert> int main() { using namespace ::boost::container; //Create a vector with 10 default constructed objects vector<movable> v(10); assert(!v[0].moved()); //Move construct all elements in v into v2 vector<movable> v2( boost::make_move_iterator(v.begin()) , boost::make_move_iterator(v.end())); assert(v[0].moved()); assert(!v2[0].moved()); //Now move assign all elements from in v2 back into v v.assign( boost::make_move_iterator(v2.begin()) , boost::make_move_iterator(v2.end())); assert(v2[0].moved()); assert(!v[0].moved()); return 0; } //] #include <boost/move/detail/config_end.hpp>