You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If the execution policy object is of type <code>sequential_execution_policy</code> or
22
-
<code>parallel_execution_policy</code>, the execution of the algorithm <ins>exits via</ins><del>terminates with</del> an
23
-
<del><code>exception_list</code></del> exception. <ins>The exception shall be an <code>exception_list</code> containing all</ins><del>All</del> uncaught exceptions thrown during
24
-
the invocations of element access functions<ins>, or optionally the uncaught exception if there was only one</ins><del>shall be contained in the
25
-
<code>exception_list</code></del>.<pre>
22
+
<code>parallel_execution_policy</code>, the execution of the algorithm exits via an
23
+
exception. The exception shall be an <code>exception_list</code> containing all uncaught exceptions thrown during
24
+
the invocations of element access functions, or optionally the uncaught exception if there was only one.<pre>
26
25
</pre>
27
26
28
27
<cxx-note>
29
-
For example, <del>the number of invocations of the user-provided function object in
30
-
<code>for_each</code> is unspecified. W</del><ins>w</ins>hen <code>for_each</code> is executed sequentially,
31
-
<ins>if an invocation of the user-provided function object throws an exception, <code>for_each</code> can exit via the uncaught exception, or throw an <code>exception_list</code> containing the original exception.
32
-
<del>only one exception will be contained in the <code>exception_list</code> object.</del>
28
+
For example, when <code>for_each</code> is executed sequentially,
29
+
if an invocation of the user-provided function object throws an exception, <code>for_each</code> can exit via the uncaught exception, or throw an <code>exception_list</code> containing the original exception.
33
30
</cxx-note><pre>
34
31
</pre>
35
32
36
33
<cxx-note>
37
34
These guarantees imply that, unless the algorithm has failed to allocate memory and
38
-
<ins>exits via</ins><del>terminated with</del><code>std::bad_alloc</code>, all exceptions thrown during the execution of
35
+
exits via <code>std::bad_alloc</code>, all exceptions thrown during the execution of
39
36
the algorithm are communicated to the caller. It is unspecified whether an algorithm implementation will "forge ahead" after
40
37
encountering and capturing a user exception.
41
38
</cxx-note><pre>
42
39
</pre>
43
40
<cxx-note>
44
-
The algorithm may <ins>exit via</ins><del>terminate with</del> the <code>std::bad_alloc</code> exception even if one or more
45
-
user-provided function objects have <ins>exited via</ins><del>terminated with</del> an exception. For example, this can happen when an algorithm fails to allocate memory while
41
+
The algorithm may exit via the <code>std::bad_alloc</code> exception even if one or more
42
+
user-provided function objects have exited via an exception. For example, this can happen when an algorithm fails to allocate memory while
46
43
creating or adding elements to the <code>exception_list</code> object.
Once standardized, the components described by this Technical Specification are expected to be promoted to namespace <code>std</code>.
59
59
</cxx-note>
60
60
61
61
<p>Unless otherwise specified, references to such entities described in this
62
62
Technical Specification are assumed to be qualified with
63
-
<code>std::experimental::parallel::v1</code>, and references to entities described in the C++
63
+
<code>std::experimental::parallel::<ins>v2</ins><del>v1</del></code>, and references to entities described in the C++
64
64
Standard Library are assumed to be qualified with <code>std::</code>.</p>
65
65
66
66
<p>Extensions that are expected to eventually be added to an existing header
@@ -77,7 +77,7 @@ <h1>Terms and definitions</h1>
77
77
78
78
<p>For the purposes of this document, the terms and definitions given in the C++ Standard and the following apply.</p>
79
79
80
-
<p>A <dfn>parallel algorithm</dfn> is a function template described by this Technical Specification declared in namespace <code>std::experimental::parallel::v1</code> with a formal template parameter named <code>ExecutionPolicy</code>.</p>
80
+
<p>A <dfn>parallel algorithm</dfn> is a function template described by this Technical Specification declared in namespace <code>std::experimental::parallel::<ins>v2</ins><del>v1</del></code> with a formal template parameter named <code>ExecutionPolicy</code>.</p>
81
81
82
82
<p>
83
83
Parallel algorithms access objects indirectly accessible via their arguments by invoking the following functions:
@@ -95,13 +95,13 @@ <h1>Terms and definitions</h1>
95
95
User-provided function objects to be applied during the execution of the algorithm, if required by the specification.
96
96
</li>
97
97
98
-
<ins><li>
98
+
<li>
99
99
Operations on those function objects required by the specification.
100
100
101
101
<cxx-note>
102
102
See clause 25.1 of <em>C++ Standard Algorithms Library</em>.
103
103
</cxx-note>
104
-
</li></ins>
104
+
</li>
105
105
</ul>
106
106
107
107
These functions are herein called <em>element access functions</em>.
@@ -127,7 +127,6 @@ <h1>Terms and definitions</h1>
127
127
</cxx-section>
128
128
129
129
<cxx-sectionid="parallel.general.features">
130
-
<ins>
131
130
<h1>Feature-testing recommendations</h1>
132
131
<p>An implementation that provides support for this Technical Specification shall define the feature test macro(s) in Table 1.</p>
0 commit comments