HighFive
HighFive copied to clipboard
No constexpr rank via constexpr min-max rank.
The commit removes the requirement for a constexpr rank. Instead containers need a minimum and maximum constexpr rank.
The difficulties are:
-
Empty arrays can't figure out their runtime rank. This is an issue when deducing the dimension when writing to disk. The "solution" is to deduce with lowest rank possible.
-
Broadcasting happens before the array has been resized. This is an issue when reading, because determining the dimensions for resizing the array requires the rank of the array. Which in general can't be determined until after resizing. For variable rank arrays, as little broadcasting as possible happens.
This allows us to do xt::xarray: #976