1 // Copyright 2002 The Trustees of Indiana University. 2 3 // Use, modification and distribution is subject to the Boost Software 4 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 // http://www.boost.org/LICENSE_1_0.txt) 6 7 // Boost.MultiArray Library 8 // Authors: Ronald Garcia 9 // Jeremy Siek 10 // Andrew Lumsdaine 11 // See http://www.boost.org/libs/multi_array for documentation. 12 13 // 14 // fail_csubarray.cpp - 15 // Testing subarray and const_subarray assignment 16 // 17 18 #include <boost/multi_array.hpp> 19 20 #include <boost/core/lightweight_test.hpp> 21 22 #include <boost/array.hpp> 23 24 int main()25main() 26 { 27 const int ndims=3; 28 typedef boost::multi_array<int,ndims> array; 29 30 boost::array<array::size_type,ndims> sma_dims = {{2,3,4}}; 31 array sma(sma_dims); 32 33 int num = 0; 34 for (array::index i = 0; i != 2; ++i) 35 for (array::index j = 0; j != 3; ++j) 36 for (array::index k = 0; k != 4; ++k) 37 sma[i][j][k] = num++; 38 39 40 array::const_subarray<ndims-1>::type csba = sma[0]; 41 42 // FAIL! Preserve constness (no const_subarray -> subarray conversion). 43 array::subarray<ndims-1>::type sba = csba; 44 45 return boost::report_errors(); 46 } 47