This repository has been archived by the owner on Sep 18, 2024. It is now read-only.
P1684: Avoid users needing to specify required span size twice #15
Labels
P1684
Issues in P1684, the specification of mdarray
This comes from 1684R2 LEWG review on 2022/04/19.
If users want to use
std::array
asmdarray
's Container, they currently need to specify the size as part of the Container's type. If the size is too small, it's UB. For common use cases (layout_{left,right}
with all compile-time extents),mdarray
can compute the correct minimum size (viarequired_span_size()
) at compile time. Users shouldn't have to repeat themselves (Don't Repeat Yourself principle).One suggested fix was to provide a template type alias that deduces the correct
std::array
type fromElementType
andSizeTypes...
, at least for common layouts (perhapslayout_{left,right}
only). A more comprehensive fix would make the default value of Container a function of all the previous template parameters. There would be no need to make that policy customizable, as users could always explicitly specify the Container type (and write their own policy to deduce it).The text was updated successfully, but these errors were encountered: