From: Julien Blanc (julien.blanc_at_[hidden])
Date: 2022-06-02 05:57:56


Hi,

I've written and released a (rather small) library which allows
defining arrays with arbitrary index mechanisms (hence the name,
indexed_array). This especially allows indexing with scoped enums, use
non zero-starting indexes, or use sparse indexes. This is not a view,
but an array in the sense that it owns the data, and provides the same
guarantees and functionalities as std::array, such as triviality
propagation, being able to reside in read-only program sections, etc.

It also supports multidimensional indexing, and provides an
indexed_span template class to access lower dimension content (which
can be used outside indexed_array).

Finally, it provides an opt-in safer way to initialize the array
content, which is especially useful when using complex and/or changing
indexing schemes (like based on externally generated files).

The library is available here:

https://github.com/Julien-Blanc-tgcm/indexed_array

And the doc is here:

https://julien-blanc-tgcm.github.io/indexed_array/

It requires C++17 and mp11, and has first-class support for describe-d
enums.

If there is some interest, i'd like to propose it for inclusion in
boost. So i'm looking for people who would endorse it.

Thanks and best regards,

Julien