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/foreach_test.cpp b/example/foreach_test.cpp
new file mode 100644
index 0000000..4330d18
--- /dev/null
+++ b/example/foreach_test.cpp
@@ -0,0 +1,54 @@
+// 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.
+
+// foreach_test.cpp
+// Let's see if this stuff works
+
+#include "boost/multi_array.hpp"
+#include "for_each.hpp"
+#include <algorithm>
+
+struct times_five {
+ double operator()(const int& val) { return val*5.0; }
+};
+
+
+int main() {
+
+ typedef boost::multi_array<double,2> array;
+
+ double data[] = {
+ 1.0, 2.0, 3.0,
+ 4.0, 5.0, 6.0,
+ 7.0, 8.0, 9.0
+ };
+ const int data_size=9;
+
+ array A(boost::extents[3][3]);
+ A.assign(data,data+data_size);
+
+#if 0
+ std::copy(A.data(),A.data()+A.num_elements(),
+ std::ostream_iterator<double>(std::cout,","));
+
+ std::cout << "\n";
+#endif
+ for_each(A,times_five());
+
+#if 0
+ std::copy(A.data(),A.data()+A.num_elements(),
+ std::ostream_iterator<double>(std::cout,","));
+
+ std::cout << "\n";
+#endif
+ return 0;
+}