On Thu, Jan 22, 2026 at 12:50 AM Andrzej Krzemienski <akrzemi1@gmail.com> wrote:
Ok, so about these `elements()`: 1. Regarding the array_ref member, I request that you specify this more formally: that the returned type models the concept std::ranges::contiguous_range. This already implies that it is random-access. A range need not be copyable, if you want this to be part of the guarantee, say that the return type is a view that models std::ranges::contiguous_range.
I think it is safer to specify that the return of elements is always at least random access. And make a note about "accidental" (but relatively common) contiguous elements.
2. Regarding the array member, the fact that it might be contiguous is also a useful guarantee. Could the docs be more specific under what circumstances I get a contiguous range?
Yes, contiguous is useful, but it constrains the design a lot because it can have consequences on controlled padding and alignment. Thanks, Alfredo