#include "iterator.node2.hpp" #include #include #include #include #include #include using namespace std; ostream_iterator out(cout, " "); int main() { unique_ptr< node > 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()); copy(node_iterator(nodes.get()), node_iterator(), out); cout << endl; for_each(node_iterator(nodes.get()), node_iterator(), boost::mem_fn(&node_base::double_me) ); copy(node_const_iterator(nodes.get()), node_const_iterator(), out); cout << endl; return 0; }