Mercurial > hg > vamp-build-and-test
annotate DEPENDENCIES/generic/include/boost/random/detail/vector_io.hpp @ 133:4acb5d8d80b6 tip
Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author | Chris Cannam |
---|---|
date | Tue, 30 Jul 2019 12:25:44 +0100 |
parents | c530137014c0 |
children |
rev | line source |
---|---|
Chris@16 | 1 /* boost random/vector_io.hpp header file |
Chris@16 | 2 * |
Chris@16 | 3 * Copyright Steven Watanabe 2011 |
Chris@16 | 4 * Distributed under the Boost Software License, Version 1.0. (See |
Chris@16 | 5 * accompanying file LICENSE_1_0.txt or copy at |
Chris@16 | 6 * http://www.boost.org/LICENSE_1_0.txt) |
Chris@16 | 7 * |
Chris@16 | 8 * See http://www.boost.org for most recent version including documentation. |
Chris@16 | 9 * |
Chris@101 | 10 * $Id$ |
Chris@16 | 11 */ |
Chris@16 | 12 |
Chris@16 | 13 #ifndef BOOST_RANDOM_DETAIL_VECTOR_IO_HPP |
Chris@16 | 14 #define BOOST_RANDOM_DETAIL_VECTOR_IO_HPP |
Chris@16 | 15 |
Chris@16 | 16 #include <vector> |
Chris@16 | 17 #include <iosfwd> |
Chris@16 | 18 #include <istream> |
Chris@16 | 19 |
Chris@16 | 20 namespace boost { |
Chris@16 | 21 namespace random { |
Chris@16 | 22 namespace detail { |
Chris@16 | 23 |
Chris@16 | 24 template<class CharT, class Traits, class T> |
Chris@16 | 25 void print_vector(std::basic_ostream<CharT, Traits>& os, |
Chris@16 | 26 const std::vector<T>& vec) |
Chris@16 | 27 { |
Chris@16 | 28 typename std::vector<T>::const_iterator |
Chris@16 | 29 iter = vec.begin(), |
Chris@16 | 30 end = vec.end(); |
Chris@16 | 31 os << os.widen('['); |
Chris@16 | 32 if(iter != end) { |
Chris@16 | 33 os << *iter; |
Chris@16 | 34 ++iter; |
Chris@16 | 35 for(; iter != end; ++iter) |
Chris@16 | 36 { |
Chris@16 | 37 os << os.widen(' ') << *iter; |
Chris@16 | 38 } |
Chris@16 | 39 } |
Chris@16 | 40 os << os.widen(']'); |
Chris@16 | 41 } |
Chris@16 | 42 |
Chris@16 | 43 template<class CharT, class Traits, class T> |
Chris@16 | 44 void read_vector(std::basic_istream<CharT, Traits>& is, std::vector<T>& vec) |
Chris@16 | 45 { |
Chris@16 | 46 CharT ch; |
Chris@16 | 47 if(!(is >> ch)) { |
Chris@16 | 48 return; |
Chris@16 | 49 } |
Chris@16 | 50 if(ch != is.widen('[')) { |
Chris@16 | 51 is.putback(ch); |
Chris@16 | 52 is.setstate(std::ios_base::failbit); |
Chris@16 | 53 return; |
Chris@16 | 54 } |
Chris@16 | 55 T val; |
Chris@16 | 56 while(is >> std::ws >> val) { |
Chris@16 | 57 vec.push_back(val); |
Chris@16 | 58 } |
Chris@16 | 59 if(is.fail()) { |
Chris@16 | 60 is.clear(); |
Chris@16 | 61 if(!(is >> ch)) { |
Chris@16 | 62 return; |
Chris@16 | 63 } |
Chris@16 | 64 if(ch != is.widen(']')) { |
Chris@16 | 65 is.putback(ch); |
Chris@16 | 66 is.setstate(std::ios_base::failbit); |
Chris@16 | 67 } |
Chris@16 | 68 } |
Chris@16 | 69 } |
Chris@16 | 70 |
Chris@16 | 71 } |
Chris@16 | 72 } |
Chris@16 | 73 } |
Chris@16 | 74 |
Chris@16 | 75 #endif // BOOST_RANDOM_DETAIL_VECTOR_IO_HPP |