Skip to content

Commit f1062d0

Browse files
Merge pull request #62 from jaredhoberock/v2
Incorporate Bryce's review feedback
2 parents b6a3648 + 82abdd8 commit f1062d0

File tree

6 files changed

+24
-24
lines changed

6 files changed

+24
-24
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Document Number: NXXXX+1
1+
Document Number: N4743
22
Date: 2018-04-02
33
Revises:
44
Project: Programming Language C++
@@ -9,11 +9,11 @@
99

1010
# Parallelism TS Editor's Report, post-Jacksonville mailing
1111

12-
NXXXX is the proposed working draft of Parallelism TS Version 2. It contains normative changes as directed by the ISO C++ Standards Committee at the 2018 Jacksonville meeting and editorial changes to the Parallelism TS.
12+
N4742 is the proposed working draft of Parallelism TS Version 2. It contains normative changes as directed by the ISO C++ Standards Committee at the 2018 Jacksonville meeting and editorial changes to the Parallelism TS.
1313

14-
NXXXX updates the previous draft, N4725, published in the pre-Jacksonville mailing.
14+
N4742 updates the previous draft, N4725, published in the pre-Jacksonville mailing.
1515

16-
NYYYY is document NXXXX reformatted as a PDTS draft document.
16+
N4744 is document N4742 reformatted as a PDTS document.
1717

1818
## Normative Changes
1919

@@ -26,5 +26,5 @@ NYYYY is document NXXXX reformatted as a PDTS draft document.
2626

2727
# Acknowledgements
2828

29-
Thanks to Alisdair Meredith, Matthias Kretz, and Marshall Clow for reviewing and suggesting editorial changes.
29+
Thanks to Alisdair Meredith, Matthias Kretz, Marshall Clow, and Bryce Lelbach for reviewing and suggesting editorial changes.
3030

algorithms.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ <h1>Header <code>&lt;experimental/algorithm&gt;</code> synopsis</h1>
148148
<cxx-ref insynopsis="" to="parallel.alg.inductions"></cxx-ref> Support for inductions
149149
template&lt;class T&gt;
150150
<em>unspecified</em> induction(T&amp;&amp; var);
151-
template&lt;class T&gt;
151+
template&lt;class T<ins>, class S</ins>&gt;
152152
<em>unspecified</em> induction(T&amp;&amp; var, S stride);
153153

154154
<cxx-ref insynopsis="" to="parallel.alg.forloop"></cxx-ref> for_loop
@@ -216,7 +216,7 @@ <h1>Reductions</h1>
216216

217217
<cxx-requires>T shall meet the requirements of <code>CopyConstructible</code> and <code>MoveAssignable</code>. The expression <code>var = combiner(var, var)</code> shall be well-formed.</cxx-requires>
218218

219-
<cxx-returns>a reduction object of unspecified type having reduction value type <code>T</code>, reduction identity <code>identity</code>, combiner function object <code>combiner</code>, and using the object referenced by <code>var</code> as its live-out object.</cxx-returns>
219+
<cxx-returns><ins>A</ins><del>a</del> reduction object of unspecified type having reduction value type <code>T</code>, reduction identity <code>identity</code>, combiner function object <code>combiner</code>, and using the object referenced by <code>var</code> as its live-out object.</cxx-returns>
220220
</cxx-function>
221221

222222
<cxx-function>
@@ -237,7 +237,7 @@ <h1>Reductions</h1>
237237

238238
<cxx-requires>T shall meet the requirements of <code>CopyConstructible</code> and <code>MoveAssignable</code>.</cxx-requires>
239239

240-
<cxx-returns>a reduction object of unspecified type having reduction value type <code>T</code>, reduction identity and combiner operation as specified in table <cxx-ref to="reduction-identities-and-combiner-operations"></cxx-ref> and using the object referenced by <code>var</code> as its live-out object.</cxx-returns>
240+
<cxx-returns><ins>A</ins><del>a</del> reduction object of unspecified type having reduction value type <code>T</code>, reduction identity and combiner operation as specified in table <cxx-ref to="reduction-identities-and-combiner-operations"></cxx-ref> and using the object referenced by <code>var</code> as its live-out object.</cxx-returns>
241241

242242
<table is="cxx-table" class="column-rules" id=reduction-identities-and-combiner-operations>
243243
<caption>Reduction identities and combiner operations</caption>
@@ -329,7 +329,7 @@ <h1>Inductions</h1>
329329
<em>unspecified</em> induction(T&amp;&amp; var, S stride);</cxx-signature>
330330

331331
<cxx-returns>
332-
an induction object with induction value type <code>remove_cv_t&lt;remove_reference_t&lt;T&gt;&gt;</code>,
332+
<ins>A</ins><del>a</del>n induction object with induction value type <code>remove_cv_t&lt;remove_reference_t&lt;T&gt;&gt;</code>,
333333
initial value <code>var</code>, and (if specified) stride <code>stride</code>. If <code>T</code> is an lvalue reference
334334
to non-<code>const</code> type, then the object referenced by <code>var</code> becomes the live-out object for the
335335
induction object; otherwise there is no live-out object.
@@ -472,7 +472,7 @@ <h1>No vec</h1>
472472
</cxx-effects>
473473

474474
<cxx-returns>
475-
the result of <code>f</code>.
475+
<ins>T</ins><del>t</del>he result of <code>f</code>.
476476
</cxx-returns>
477477

478478
<cxx-notes>

data_parallel_types.html

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,7 @@ <h1><ins>Class templates <code>const_where_expression</code> and <code>where_exp
661661

662662
<cxx-requires>
663663
<ins>
664-
If the template parameter <code>Flags</code> is <code>vector_aligned_tag</code>, <code>mem</code> shall point to storage aligned by <code>memory_alignment_v&lt;T, U&gt;</code>. If the template parameter <code>Flags</code> is <code>overaligned_tag&lt;N&gt;</code>, <code>mem</code> shall point to storage aligned by <code>N</code>. If the template parameter <code>Flags</code> is <code>element_aligned_tag</code>, <code>mem</code> shall point to storage aligned by <code>alignof(U)</code>. If <code>M</code> is not <code>bool</code>, the largest <em>i</em> &#8714; <code>[0, M::size())</code> where <code>mask[i]</code> is <code>true</code> is less than the number of values pointed to by <code>mem</code>.
664+
If the template parameter <code>Flags</code> is <code>vector_aligned_tag</code>, <code>mem</code> shall point to storage aligned by <code>memory_alignment_v&lt;T, U&gt;</code>. If the template parameter <code>Flags</code> is <code>overaligned_tag&lt;N&gt;</code>, <code>mem</code> shall point to storage aligned by <code>N</code>. If the template parameter <code>Flags</code> is <code>element_aligned_tag</code>, <code>mem</code> shall point to storage aligned by <code>alignof(U)</code>. If <code>M</code> is not <code>bool</code>, the largest <code>i</code> &#8714; <code>[0, M::size())</code> where <code>mask[i]</code> is <code>true</code> is less than the number of values pointed to by <code>mem</code>.
665665
</ins>
666666
</cxx-requires>
667667

@@ -780,7 +780,7 @@ <h1><ins>Class templates <code>const_where_expression</code> and <code>where_exp
780780

781781
<cxx-requires>
782782
<ins>
783-
If the template parameter <code>Flags</code> is <code>vector_aligned_tag</code>, <code>mem</code> shall point to storage aligned by <code>memory_alignment_v&lt;T, U&gt;</code>. If the template parameter <code>Flags</code> is <code>overaligned_tag&lt;N&gt;</code>, <code>mem</code> shall point to storage aligned by <code>N</code>. If the template parameter <code>Flags</code> is <code>element_aligned_tag</code>, <code>mem</code> shall point to storage aligned by <code>alignof(U)</code>. If <code>is_simd_flag_type_v&lt;U&gt;</code> is <code>true</code>, for all selected indices <em>i</em>, <em>i</em> shall be less than the number of values pointed to by <code>mem</code>.
783+
If the template parameter <code>Flags</code> is <code>vector_aligned_tag</code>, <code>mem</code> shall point to storage aligned by <code>memory_alignment_v&lt;T, U&gt;</code>. If the template parameter <code>Flags</code> is <code>overaligned_tag&lt;N&gt;</code>, <code>mem</code> shall point to storage aligned by <code>N</code>. If the template parameter <code>Flags</code> is <code>element_aligned_tag</code>, <code>mem</code> shall point to storage aligned by <code>alignof(U)</code>. If <code>is_simd_flag_type_v&lt;U&gt;</code> is <code>true</code>, for all selected indices <code>i</code>, <code>i</code> shall be less than the number of values pointed to by <code>mem</code>.
784784
</ins>
785785
</cxx-requires>
786786

@@ -1582,7 +1582,7 @@ <h1><ins>Unary operators</ins></h1>
15821582

15831583
<cxx-remarks>
15841584
<ins>
1585-
<code>simd::operator~()</code> shall not participate in overload resolution unless <code>T</code> is an integral type.
1585+
This operator shall not participate in overload resolution unless <code>T</code> is an integral type.
15861586
</ins>
15871587
</cxx-remarks>
15881588
</cxx-function>
@@ -2278,7 +2278,7 @@ <h1><ins>Algorithms</ins></h1>
22782278

22792279
<cxx-returns>
22802280
<ins>
2281-
A pair initialized with
2281+
A <code>pair</code> initialized with
22822282

22832283
<ul>
22842284
<li>
@@ -2290,7 +2290,7 @@ <h1><ins>Algorithms</ins></h1>
22902290

22912291
<li>
22922292
<ins>
2293-
the result of element-wise application of <code>std::max(a[i], b[i])</code> for all <code>i</code> &#8714; <code>[0, size())</code> in the <code>second</code> member, and
2293+
the result of element-wise application of <code>std::max(a[i], b[i])</code> for all <code>i</code> &#8714; <code>[0, size())</code> in the <code>second</code> member.
22942294

22952295
</ins>
22962296
</li>
@@ -2738,7 +2738,7 @@ <h1><ins>Comparisons</ins></h1>
27382738
<h1><ins>Reductions</ins></h1>
27392739

27402740
<cxx-function>
2741-
<cxx-signature><ins>template&lt;class T, class Abi&gt; bool all_of(const simd_mask&lt;T, abi&gt;& k) noexcept;</ins></cxx-signature>
2741+
<cxx-signature><ins>template&lt;class T, class Abi&gt; bool all_of(const simd_mask&lt;T, Abi&gt;& k) noexcept;</ins></cxx-signature>
27422742

27432743
<cxx-returns>
27442744
<ins>
@@ -2748,7 +2748,7 @@ <h1><ins>Reductions</ins></h1>
27482748
</cxx-function>
27492749

27502750
<cxx-function>
2751-
<cxx-signature><ins>template&lt;class T, class Abi&gt; bool any_of(const simd_mask&lt;T, abi&gt;& k) noexcept;</ins></cxx-signature>
2751+
<cxx-signature><ins>template&lt;class T, class Abi&gt; bool any_of(const simd_mask&lt;T, Abi&gt;& k) noexcept;</ins></cxx-signature>
27522752

27532753
<cxx-returns>
27542754
<ins>
@@ -2758,7 +2758,7 @@ <h1><ins>Reductions</ins></h1>
27582758
</cxx-function>
27592759

27602760
<cxx-function>
2761-
<cxx-signature><ins>template&lt;class T, class Abi&gt; bool none_of(const simd_mask&lt;T, abi&gt;& k) noexcept;</ins></cxx-signature>
2761+
<cxx-signature><ins>template&lt;class T, class Abi&gt; bool none_of(const simd_mask&lt;T, Abi&gt;& k) noexcept;</ins></cxx-signature>
27622762

27632763
<cxx-returns>
27642764
<ins>
@@ -2768,7 +2768,7 @@ <h1><ins>Reductions</ins></h1>
27682768
</cxx-function>
27692769

27702770
<cxx-function>
2771-
<cxx-signature><ins>template&lt;class T, class Abi&gt; bool some_of(const simd_mask&lt;T, abi&gt;& k) noexcept;</ins></cxx-signature>
2771+
<cxx-signature><ins>template&lt;class T, class Abi&gt; bool some_of(const simd_mask&lt;T, Abi&gt;& k) noexcept;</ins></cxx-signature>
27722772

27732773
<cxx-returns>
27742774
<ins>

execution_policies.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ <h1>Vector execution policy</h1>
6262
<h1>Execution policy objects</h1>
6363

6464
<pre>
65-
inline constexpr execution::unsequenced_policy unseq{};
66-
inline constexpr execution::vector_policy vec{};
65+
inline constexpr execution::unsequenced_policy unseq{ <ins><i>unspecified</i></ins> };
66+
inline constexpr execution::vector_policy vec{ <ins><i>unspecified</i></ins> };
6767
</pre>
6868

6969
<p>The header <code>&lt;experimental/execution&gt;</code> declares a global object associated with each type of execution policy defined by this Technical Specification.</p>

front_matter.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<cxx-titlepage stage="draft">
2-
<cxx-docnum>NXXXX</cxx-docnum>
2+
<cxx-docnum>N4742</cxx-docnum>
33
<cxx-project-number>19570</cxx-project-number>
44
<time pubdate="">2018-04-02</time>
55
<cxx-revises><a href="http://wg21.link/N4725">N4725</a></cxx-revises>

task_block.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ <h1>Class <code>task_block</code></h1>
9292
</p>
9393

9494
<p>
95-
A <code>task_block</code> is <em>active</em> if it was created by the nearest enclosing task block, where “task block” refers to an
96-
invocation of <code>define_task_block</code> or <code>define_task_block_restore_thread</code> and “nearest enclosing” means the most
95+
A <code>task_block</code> is <em>active</em> if it was created by the <ins><em>nearest enclosing</em></ins><del>nearest enclosing</del> <ins><em>task block</em></ins><del>task block</del>, where <ins><em>task block</em></ins><del>“task block”</del> refers to an
96+
invocation of <code>define_task_block</code> or <code>define_task_block_restore_thread</code> and <ins><em>nearest enclosing</em></ins><del>“nearest enclosing”</del> means the most
9797
recent invocation that has not yet completed. Code designated for execution in another thread by means other
9898
than the facilities in this section (e.g., using <code>thread</code> or <code>async</code>) are not enclosed in the task block and a
9999
<code>task_block</code> passed to (or captured by) such code is not active within that code. Performing any operation on a

0 commit comments

Comments
 (0)