// Copyright David Abrahams 2004. Use, modification and distribution is // subject to 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) #include "node_iterator3.hpp" #include #include #include #include #include #include int main() { std::auto_ptr > nodes(new node(42)); nodes->append(new node(" is greater than ")); nodes->append(new node(13)); // Check interoperability assert(node_iterator(nodes.get()) == node_const_iterator(nodes.get())); assert(node_const_iterator(nodes.get()) == node_iterator(nodes.get())); assert(node_iterator(nodes.get()) != node_const_iterator()); assert(node_const_iterator(nodes.get()) != node_iterator()); std::copy( node_iterator(nodes.get()), node_iterator() , std::ostream_iterator(std::cout, " ") ); std::cout << std::endl; std::for_each( node_iterator(nodes.get()), node_iterator() , boost::mem_fn(&node_base::double_me) ); std::copy( node_const_iterator(nodes.get()), node_const_iterator() , std::ostream_iterator(std::cout, "/") ); std::cout << std::endl; return 0; }