mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-30 20:40:28 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // 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 <string>
 | |
| #include <memory>
 | |
| #include <iostream>
 | |
| #include <algorithm>
 | |
| #include <boost/mem_fn.hpp>
 | |
| #include <cassert>
 | |
| 
 | |
| int main()
 | |
| {
 | |
|     std::auto_ptr<node<int> > nodes(new node<int>(42));
 | |
|     nodes->append(new node<std::string>(" is greater than "));
 | |
|     nodes->append(new node<int>(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<node_base>(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<node_base>(std::cout, "/")
 | |
|     );
 | |
|     std::cout << std::endl;
 | |
|     return 0;
 | |
| }
 |