std::fill( foo.begin() , foo.end() , 0);
( , , boost:: assign, ).
boo , std:: fill (boo.begin() → begin(), boo.end() → end(), 0);
pass, , :
/usr/include/boost/multi_array/base.hpp:178: Reference boost :: detail :: multi_array :: value_accessor_one :: access (boost :: type, boost :: multi_array_types :: index, TPtr, const boost :: multi_array_types :: size_type *, const boost :: multi_array_types :: index *, const boost :: multi_array_types :: index *) const [with Reference = unsigned int &, TPtr = unsigned int *, T = unsigned int]: Statement `size_type ( idx - index_bases [0]) <extents [0] 'failed.Blockquote
here is a short code:
#include <iomanip>
#include "boost/multi_array.hpp"
#include <iostream>
namespace vec {
typedef boost::multi_array<unsigned int, 1> uint_1d_vec_t;
typedef boost::multi_array<unsigned int, 2> uint_2d_vec_t;
typedef uint_1d_vec_t::index index_1d_t;
typedef uint_2d_vec_t::index index_2d_t;
}
using namespace std;
int main( ) {
unsigned int num_elements, num_bits, max_runs, m;
num_bits = 12;
max_runs = 5000;
m = 2;
num_elements = ( 1 << num_bits );
double kappa = 79;
vec::uint_1d_vec_t foo( boost::extents[ static_cast< vec::index_1d_t >(num_elements) ] );
vec::uint_2d_vec_t boo( boost::extents[ static_cast< vec::index_2d_t >(num_elements) ][ static_cast< vec::index_2d_t >(kappa) ] );
std::fill( foo.begin() , foo.end() , 0);
std::fill( boo.begin()->begin() , boo.end()->end() , 0);
std::cout << "Done" << std::endl;
return EXIT_SUCCESS;
}
Eagle source
share