@@ -3,13 +3,11 @@ P0546r2 : Span - foundation for the future
3
3
===================================================================
4
4
5
5
:Project: ISO JTC1/SC22/WG21: Programming Language C++
6
- :Number: D0546r2
7
- :Date: 2017-10 -11
8
-
6
+ :Number: P0546r2
7
+ :Date: 2018-02 -11
8
+
9
9
:Author: H\. Carter Edwards
10
10
11
- :Author: Bryce Lelbach
12
-
13
11
:Author: Daniel Sunderland
14
12
15
13
:Audience: Library Evolution Working Group (LEWG)
@@ -24,6 +22,7 @@ P0546r2 : Span - foundation for the future
24
22
+------------+-------------------------------------------------------------+
25
23
+ P0546r2 + Update AccessProperties to Properties. +
26
24
+ + Reference P0900 on properties ontology. +
25
+ + + Request LEWG straw polls at 2018-03-Jacksonville. +
27
26
+------------+-------------------------------------------------------------+
28
27
29
28
+------------+-------------------------------------------------------------+
@@ -42,6 +41,40 @@ P0546r2 : Span - foundation for the future
42
41
| P0900 | Property Ontology |
43
42
+------------+-------------------------------------------------------------+
44
43
44
+ ******************************************************************
45
+ Requested Action by LEWG at 2018-03-Jacksonville
46
+ ******************************************************************
47
+
48
+ - Recall `LEWG 2017-11-Albuquerque
49
+ <http://wiki.edg.com/bin/view/Wg21albuquerque/P0546> `_
50
+ straw polls
51
+
52
+ *We should specify the dynamic extent as the
53
+ element type of the first template parameter
54
+ rather than the (current) second template parameter *
55
+
56
+ **SF 5 , F 3 , N 2 , A 2 , SA 0 **
57
+
58
+ *We support the addition of access properties variadic template parameters *
59
+
60
+ **SF 0 , F 10 , N 1 , A 5 , SA 0 **
61
+
62
+
63
+ - LEWG 2018-03-Jacksonville requested straw polls:
64
+
65
+ 1. Revise P0122 ``span `` to declare extent as part of the element type of
66
+ the first template parameter; before progressing ``span `` through LWG?
67
+
68
+ * This modifies ``span `` to have a single template argument.
69
+
70
+
71
+ 2. For the single template argument ``span `` add the properties parameter pack
72
+ to enable properties such as ``atomic_access `` (P0860) and
73
+ ``restrict_access `` (P0856); before progressing ``span `` through LWG?
74
+
75
+ 3. Introduce into wording the vocabulary of *domain index space *
76
+ for the set of admissible indices and
77
+ *codomain element space * for the set of referenced objects.
45
78
46
79
******************************************************************
47
80
Motivation
@@ -62,19 +95,19 @@ to incorporate additional high performance access needs such
62
95
as those identified in **P0009 ** and **P0367 **.
63
96
64
97
65
- Summary of Proposed Change
98
+ Summary of Proposed Changes
66
99
----------------------------------------------------------------------------
67
100
68
- Instead of ``ElementType `` provide an ``ArrayType `` and
69
- delete the *magic value * ``dynamic_extent `` .
70
-
71
101
.. code-block :: c++
72
102
73
103
template < class ArrayType , typename ... Properties >
74
104
class span ;
75
105
76
106
..
77
107
108
+ 1. Instead of ``ElementType `` provide an ``ArrayType `` and
109
+ delete the *magic value * ``dynamic_extent `` .
110
+
78
111
- ``ArrayType `` is either
79
112
80
113
- ``ElementType[N] `` for a span with explicit static length,
@@ -87,6 +120,9 @@ delete the *magic value* ``dynamic_extent`` .
87
120
88
121
- The need for a ``dynamic_extent `` *magic value * is entirely eliminated.
89
122
123
+
124
+ 2. Add properties parameter pack.
125
+
90
126
- ``Properties... `` is a well-defined extension point **P0900 **.
91
127
This extension point, while not exercised in this proposal, enables
92
128
code which is templated on ``span `` to be *future proofed * with
@@ -97,7 +133,7 @@ delete the *magic value* ``dynamic_extent`` .
97
133
future proof.
98
134
99
135
100
- Introduce vocabulary of *domain index space * and *codomain element space * .
136
+ 3. Introduce vocabulary of *domain index space * and *codomain element space * .
101
137
102
138
103
139
Precedence
@@ -271,7 +307,6 @@ Changes to span constructors, copy, assignment, and destructor [span.cons]
271
307
.. code-block :: c++
272
308
273
309
constexpr span() noexcept ;
274
- constexpr span( nullptr_t ) nodexcept ;
275
310
276
311
..
277
312
0 commit comments