3861. mdspan layout_stride::mapping default constructor problem

Section: 23.7.3.4.7 [mdspan.layout.stride] Status: Resolved Submitter: Christian Robert Trott Opened: 2023-01-25 Last modified: 2023-06-13

Priority: 1

View all issues with Resolved status.

Discussion:

During work on some follow on proposals for C++26 (like the padded layouts and submdspan) we stumbled over an issue in the C++23 mdspan definition.

If you have a layout_stride::mapping with just static extents, its default constructor will produce an inconsistent mapping. All its strides will be 0 but its extents are not. Thus the is_unique property is violated. We wrote a paper to fix this: P2763R0. We describe two options to fix it and state why we prefer one over the other, with proposed wording changes.

[2023-02-06; Reflector poll]

Set priority to 1 after reflector poll.

[2023-06-12 Status changed: New → Resolved.]

Resolved in Issaquah by P2763R0.

Proposed resolution: