You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
		
		
		
		
		
			
		
			
				
					
					
						
							75 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
	
	
							75 lines
						
					
					
						
							1.7 KiB
						
					
					
				| /* boost random/vector_io.hpp header file | |
|  * | |
|  * Copyright Steven Watanabe 2011 | |
|  * 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 for most recent version including documentation. | |
|  * | |
|  * $Id: vector_io.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $ | |
|  */ | |
| 
 | |
| #ifndef BOOST_RANDOM_DETAIL_VECTOR_IO_HPP | |
| #define BOOST_RANDOM_DETAIL_VECTOR_IO_HPP | |
|  | |
| #include <vector> | |
| #include <iosfwd> | |
| #include <istream> | |
|  | |
| namespace boost { | |
| namespace random { | |
| namespace detail { | |
| 
 | |
| template<class CharT, class Traits, class T> | |
| void print_vector(std::basic_ostream<CharT, Traits>& os, | |
|                   const std::vector<T>& vec) | |
| { | |
|     typename std::vector<T>::const_iterator | |
|         iter = vec.begin(), | |
|         end =  vec.end(); | |
|     os << os.widen('['); | |
|     if(iter != end) { | |
|         os << *iter; | |
|         ++iter; | |
|         for(; iter != end; ++iter) | |
|         { | |
|             os << os.widen(' ') << *iter; | |
|         } | |
|     } | |
|     os << os.widen(']'); | |
| } | |
| 
 | |
| template<class CharT, class Traits, class T> | |
| void read_vector(std::basic_istream<CharT, Traits>& is, std::vector<T>& vec) | |
| { | |
|     CharT ch; | |
|     if(!(is >> ch)) { | |
|         return; | |
|     } | |
|     if(ch != is.widen('[')) { | |
|         is.putback(ch); | |
|         is.setstate(std::ios_base::failbit); | |
|         return; | |
|     } | |
|     T val; | |
|     while(is >> std::ws >> val) { | |
|         vec.push_back(val); | |
|     } | |
|     if(is.fail()) { | |
|         is.clear(); | |
|         if(!(is >> ch)) { | |
|             return; | |
|         } | |
|         if(ch != is.widen(']')) { | |
|             is.putback(ch); | |
|             is.setstate(std::ios_base::failbit); | |
|         } | |
|     } | |
| } | |
| 
 | |
| } | |
| } | |
| } | |
| 
 | |
| #endif // BOOST_RANDOM_DETAIL_VECTOR_IO_HPP
 | |
| 
 |