| // 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; |
| } |