Skip to content

Wrong behavior of map_array copy constructor. #193

@dlee-sandbox

Description

@dlee-sandbox

map_array copy constructor is not functions as expected, leading to crash.

Code to reproduce:

boost::numeric::ublas::map_array<size_t, float> getMapArray()
{
  boost::numeric::ublas::map_array<size_t, float> ma;
  ma.insert(std::make_pair(1, 1.0f));

  return ma;
}


int main()
{
  boost::numeric::ublas::map_array<size_t, float> ma = getMapArray();
  return 0;
}

Fix:
in line 248 of storage_sparse.hpp,

//std::uninitialized_copy (data_, data_ + capacity_, c.data_); // original implementation
std::uninitialized_copy (c.data_, c.data_ + c.size_, data_);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions