Squashed 'third_party/boostorg/multi_array/' content from commit abcb283
Change-Id: I4b93f75f0b15b00216d918bd6db5fc4fcb9c4cc2
git-subtree-dir: third_party/boostorg/multi_array
git-subtree-split: abcb2839d56669d1b5bb8a240ec644f47c66beb2
diff --git a/example/print_array.cpp b/example/print_array.cpp
new file mode 100644
index 0000000..5ce3c8a
--- /dev/null
+++ b/example/print_array.cpp
@@ -0,0 +1,50 @@
+// Copyright 2002 The Trustees of Indiana University.
+
+// Use, modification and distribution is subject to 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)
+
+// Boost.MultiArray Library
+// Authors: Ronald Garcia
+// Jeremy Siek
+// Andrew Lumsdaine
+// See http://www.boost.org/libs/multi_array for documentation.
+
+
+#include <iostream>
+#include "boost/multi_array.hpp"
+#include "boost/array.hpp"
+#include "boost/cstdlib.hpp"
+
+template <typename Array>
+void print(std::ostream& os, const Array& A)
+{
+ typename Array::const_iterator i;
+ os << "[";
+ for (i = A.begin(); i != A.end(); ++i) {
+ print(os, *i);
+ if (boost::next(i) != A.end())
+ os << ',';
+ }
+ os << "]";
+}
+void print(std::ostream& os, const double& x)
+{
+ os << x;
+}
+int main()
+{
+ typedef boost::multi_array<double, 2> array;
+ double values[] = {
+ 0, 1, 2,
+ 3, 4, 5
+ };
+ const int values_size=6;
+ array A(boost::extents[2][3]);
+ A.assign(values,values+values_size);
+ print(std::cout, A);
+ return boost::exit_success;
+}
+
+// The output is:
+// [[0,1,2],[3,4,5]]