mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04:00 
			
		
		
		
	git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7593 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // (C) Copyright Jeremy Siek 2001.
 | |
| // 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)
 | |
| 
 | |
| // Revision History:
 | |
| 
 | |
| // 27 Feb 2001   Jeremy Siek
 | |
| //      Initial checkin.
 | |
| 
 | |
| #ifndef BOOST_FUNCTION_OUTPUT_ITERATOR_HPP
 | |
| #define BOOST_FUNCTION_OUTPUT_ITERATOR_HPP
 | |
| 
 | |
| #include <iterator>
 | |
| 
 | |
| namespace boost {
 | |
| namespace iterators {
 | |
| 
 | |
|   template <class UnaryFunction>
 | |
|   class function_output_iterator {
 | |
|     typedef function_output_iterator self;
 | |
|   public:
 | |
|     typedef std::output_iterator_tag iterator_category;
 | |
|     typedef void                value_type;
 | |
|     typedef void                difference_type;
 | |
|     typedef void                pointer;
 | |
|     typedef void                reference;
 | |
| 
 | |
|     explicit function_output_iterator() {}
 | |
| 
 | |
|     explicit function_output_iterator(const UnaryFunction& f)
 | |
|       : m_f(f) {}
 | |
| 
 | |
|     struct output_proxy {
 | |
|       output_proxy(UnaryFunction& f) : m_f(f) { }
 | |
|       template <class T> output_proxy& operator=(const T& value) {
 | |
|         m_f(value);
 | |
|         return *this;
 | |
|       }
 | |
|       UnaryFunction& m_f;
 | |
|     };
 | |
|     output_proxy operator*() { return output_proxy(m_f); }
 | |
|     self& operator++() { return *this; }
 | |
|     self& operator++(int) { return *this; }
 | |
|   private:
 | |
|     UnaryFunction m_f;
 | |
|   };
 | |
| 
 | |
|   template <class UnaryFunction>
 | |
|   inline function_output_iterator<UnaryFunction>
 | |
|   make_function_output_iterator(const UnaryFunction& f = UnaryFunction()) {
 | |
|     return function_output_iterator<UnaryFunction>(f);
 | |
|   }
 | |
| 
 | |
| } // namespace iterators
 | |
| 
 | |
| using iterators::function_output_iterator;
 | |
| using iterators::make_function_output_iterator;
 | |
| 
 | |
| } // namespace boost
 | |
| 
 | |
| #endif // BOOST_FUNCTION_OUTPUT_ITERATOR_HPP
 |