Mercurial > hg > vamp-build-and-test
view DEPENDENCIES/generic/include/boost/random/detail/vector_io.hpp @ 130:d659ed4b9197
Another point to run repoint
author | Chris Cannam |
---|---|
date | Thu, 07 Feb 2019 11:48:53 +0000 |
parents | c530137014c0 |
children |
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$ */ #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