]> git.donarmstrong.com Git - rsem.git/blobdiff - boost/random/detail/vector_io.hpp
Updated boost to v1.55.0
[rsem.git] / boost / random / detail / vector_io.hpp
diff --git a/boost/random/detail/vector_io.hpp b/boost/random/detail/vector_io.hpp
new file mode 100644 (file)
index 0000000..0bb261c
--- /dev/null
@@ -0,0 +1,75 @@
+/* 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