Mercurial > hg > vamp-build-and-test
view DEPENDENCIES/generic/include/boost/random/detail/vector_io.hpp @ 75:a76b96026c2d
Update summarisation
author | Chris Cannam |
---|---|
date | Thu, 30 Oct 2014 13:25:15 +0000 |
parents | 2665513ce2d3 |
children | c530137014c0 |
line wrap: on
line source
/* 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