You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 18, 2024. It is now read-only.
This means there is no way to access the container underneath linearly. Deal breaker when you do file IO.
Example code:
TEST_CASE("experimental/mdarray")
{
auto array = std::experimental::mdarray<float, std::experimental::dynamic_extent, std::experimental::dynamic_extent, std::experimental::dynamic_extent>(3, 3, 3);
auto count = 0;
for (auto x = 0; x < 3; ++x)
for (auto y = 0; y < 3; ++y)
for (auto z = 0; z < 3; ++z)
array(x, y, z) = count++;
auto recount = 0;
for (auto i = 0; i < array.size(); ++i)
REQUIRE(array.data()[i] == recount++); // Compile error.
}
Error: C2039 'data': is not a member of 'std::experimental::__mdarray_version_0::vector_container_policy<T,std::allocator>' array_test C:\development\source\cpp\particle_tracer\build\vcpkg\installed\x64-windows\include\experimental__p1684_bits\basic_mdarray.hpp 387
When changed to array.view().data()[i] error becomes: C2248 'std::experimental::__mdarray_version_0::basic_mdarray<float,std::experimental::extents<-1,-1,-1>,std::experimental::layout_right,std::experimental::_mdarray_version_0::vector_container_policy<T,std::allocator>>::map': cannot access private member declared in class 'std::experimental::__mdarray_version_0::basic_mdarray<float,std::experimental::extents<-1,-1,-1>,std::experimental::layout_right,std::experimental::__mdarray_version_0::vector_container_policy<T,std::allocator>>' array_test C:\development\source\cpp\particle_tracer\build\vcpkg\installed\x64-windows\include\experimental__p1684_bits\basic_mdarray.hpp 75