P0009 LWG Review 03/04/2022
Label naming: https://github.com/cplusplus/draft/wiki/Specification-Style-Guidelines#labels
mdspan.terms
- ~par 2: remove ... from idx~ c12ff4a4f
- ~par 3: remove $ signs~ e5e8eb905
Extents synopsis
- ~extents::rank_dynamic call dynamic-index instead of fold~ c12ff4a4f
- ~change comment: Constructors and assignment to Constructors, label change to mdspan.extents.ctors~ c0745758
- ~mdspan.extents.compare -> mdspan.extents.cmp~ e5e8eb905
- ~paragraph 3-5 being one, leave 6~ c0745758
- ~rev-prod-of-extents misses argument name e and i in synopsis and definition~ c0745758
- ~Preconditions missing dot: 7 9 11 13~ 94fe9afc0b1
- ~par: 12 and 14 comma after condition, and "the product"~ 94fe9afc0b1
- ~Separate heading for exposition only members where the line is~ c0745758
- ~make fwd/rev-prod-of-extents public member functions~ c0745758ad3
- ~accept rank-type~ c0745758ad3
- add note: these functions are only invoked in situations where this can't overflow
mdspan.extents.cons
-
converting constructor:
- ~put the explicit condition into the see below (but not in the synopsis)~ 737dae6357
- ~For each E_r that is not dynamic index, E_r is equal to other.extent(r).~ c0745758
-
~par 5.3: dynamic extents should not be in italics~ 94fe9afc0b1
-
Thought experiment but don't do this:
template<class...SizeTypes
explicit constexpr extents(SizeTypes... exts)
-
- change to have two constructors with dynamic and rank size_types
- try this in implementation
-
~qualify move/forward with std:: everywhere~ 4e4df5e004a
-
~par 7: remove italics from static extent~ 94fe9afc0b1
-
~par 9.1 "is" true instead of "equals" true~c0745758
-
~par 9.3 (N=rank_dynamic || N==rank()) is
true~ c0745758 -
~par 11.1 element wise wording like 11.2~ 2361c570ad
- ~also check that in
layout_stride~ 2361c570ad
- ~also check that in
-
~just do
explicit extents(Integrals...) -> see below~ 737dae6357
mdspan.extents.obs
- ~put back in "static" before static_extent~ 1b571ebcb430
mdspan.layout
- ~Fix numbering~ ec5e87461481
- ~par 1.6: the integer packs i and j are ...~ c12ff4a4
- ~par 1.8: dr is a pack of (possibly const) pack of integers~ c12ff4a4
- ~make dr a d_r like E_r~ 1b571ebcb430
Things we did as part of this:
commit: 7366664af806656 and 8c93cc254f7d
-
add size of a multidimensional index space definition, used later as part of preconditions for example for layouts
-
add REQUIRED-SPAN-SIZE exposition only macro for layout_stride
-
Fixes to requirement lists:
- changed "Value" to "Returns"
- Removed "type" preconditions and reformulated results