Opened 11 years ago
#6073 new Feature Requests
typed subarray from incompatible/raw memory
| Reported by: | Owned by: | Ronald Garcia | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | multi_array |
| Version: | Boost 1.47.0 | Severity: | Problem |
| Keywords: | Cc: |
Description
Consider this example:
struct A { double x, y; };
struct B : A { double z; };
struct C { A a; double z; };
struct D { double z; A a; };
struct unknown { ...; A a; ....; };
Let's say I have in memory an n-dimensional array of B, or C, or D, or even unknown structure where I know only total size of the element and offset of A inside it, both in run-time (e.g. a binary file produced by NumPy.mmap).
What I need is a multi_array_view that could behave as an multi_array of A, given the sizeof of "real" element containing A, and offset of A inside it, like this:
void* p = mmap(...); size_t el_size = size_of_element_in_p; size_t offset = offset_of_A_inside_element; boost::multi_array::multi_array_typed_view<A, NumDims> my_view(p, extents, el_size, offset );
Strided view (boost::detail::multi_array::multi_array_view) could do the job in simple cases when size of "real" element is a multiple of sizeof(A), but not in the above case.
