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
Copy file name to clipboardExpand all lines: general.html
+95-95Lines changed: 95 additions & 95 deletions
Original file line number
Diff line number
Diff line change
@@ -1,66 +1,120 @@
1
-
<cxx-clauseid="parallel.general">
2
-
<h1>General</h1>
3
-
<cxx-sectionid="parallel.general.scope">
4
-
<h1>Scope</h1>
5
-
<p>This Technical Specification describes requirements for implementations of an
6
-
interface that computer programs written in the C++ programming language may
7
-
use to invoke algorithms with parallel execution. The algorithms described by
8
-
this Technical Specification are realizable across a broad class of
9
-
computer architectures.</p>
10
-
11
-
<p>This Technical Specification is non-normative. Some of the functionality
12
-
described by this Technical Specification may be considered for standardization
13
-
in a future version of C++, but it is not currently part of any C++ standard.
14
-
Some of the functionality in this Technical Specification may never be
15
-
standardized, and other functionality may be standardized in a substantially
16
-
changed form.</p>
17
-
18
-
<p>The goal of this Technical Specification is to build widespread existing
19
-
practice for parallelism in the C++ standard algorithms library. It gives
20
-
advice on extensions to those vendors who wish to provide them.</p>
21
-
</cxx-section>
1
+
<cxx-clauseid="parallel.scope">
2
+
<h1>Scope</h1>
3
+
<p>This Technical Specification describes requirements for implementations of an
4
+
interface that computer programs written in the C++ programming language may
5
+
use to invoke algorithms with parallel execution. The algorithms described by
6
+
this Technical Specification are realizable across a broad class of
7
+
computer architectures.</p>
8
+
9
+
<p>This Technical Specification is non-normative. Some of the functionality
10
+
described by this Technical Specification may be considered for standardization
11
+
in a future version of C++, but it is not currently part of any C++ standard.
12
+
Some of the functionality in this Technical Specification may never be
13
+
standardized, and other functionality may be standardized in a substantially
14
+
changed form.</p>
15
+
16
+
<p>The goal of this Technical Specification is to build widespread existing
17
+
practice for parallelism in the C++ standard algorithms library. It gives
18
+
advice on extensions to those vendors who wish to provide them.</p>
19
+
</cxx-clause>
20
+
21
+
<cxx-clauseid="parallel.references">
22
+
<h1>Normative references</h1>
23
+
24
+
<p>The following referenced document is indispensable for the
25
+
application of this document. For dated references, only the
26
+
edition cited applies. For undated references, the latest edition
27
+
of the referenced document (including any amendments) applies.</p>
28
+
29
+
<ul>
30
+
<li>ISO/IEC 14882:—<cxx-footnote>To be published. Section references are relative to <ahref="http://www.open-std.org/jtc1/sc22/wg21/prot/14882fdis/n3937.pdf">N3937</a>.</cxx-footnote>,
<p>ISO/IEC 14882:— is herein called the <dfn>C++ Standard</dfn>.
36
+
The library described in ISO/IEC 14882:— clauses 17-30 is herein called
37
+
the <dfn>C++ Standard Library</dfn>. The C++ Standard Library components described in
38
+
ISO/IEC 14882:— clauses 25, 26.7 and 20.7.2 are herein called the <dfn>C++ Standard
39
+
Algorithms Library</dfn>.</p>
40
+
41
+
<p>Unless otherwise specified, the whole of the C++ Standard's Library
42
+
introduction (<cxx-refin="cxx" to="library"></cxx-ref>) is included into this
43
+
Technical Specification by reference.</p>
44
+
</cxx-clause>
22
45
23
-
<cxx-sectionid="parallel.general.references">
24
-
<h1>Normative references</h1>
46
+
<cxx-clauseid="parallel.defns">
47
+
<h1>Terms and definitions</h1>
25
48
26
-
<p>The following referenced document is indispensable for the
27
-
application of this document. For dated references, only the
28
-
edition cited applies. For undated references, the latest edition
29
-
of the referenced document (including any amendments) applies.</p>
49
+
<p>For the purposes of this document, the terms and definitions given in the C++ Standard and the following apply.</p>
50
+
51
+
<p>A <dfn>parallel algorithm</dfn> is a function template described by this Technical Specification declared in namespace <code>std::experimental::parallel::v2</code> with a formal template parameter named <code>ExecutionPolicy</code>.</p>
52
+
53
+
<p>
54
+
Parallel algorithms access objects indirectly accessible via their arguments by invoking the following functions:
30
55
31
56
<ul>
32
-
<li>ISO/IEC 14882:—<cxx-footnote>To be published. Section references are relative to <ahref="http://www.open-std.org/jtc1/sc22/wg21/prot/14882fdis/n3937.pdf">N3937</a>.</cxx-footnote>,
Once standardized, the components described by this Technical Specification are expected to be promoted to namespace <code>std</code>.
59
113
</cxx-note>
60
114
61
115
<p>Unless otherwise specified, references to such entities described in this
62
116
Technical Specification are assumed to be qualified with
63
-
<code>std::experimental::parallel::<ins>v2</ins><del>v1</del></code>, and references to entities described in the C++
117
+
<code>std::experimental::parallel::v2</code>, and references to entities described in the C++
64
118
Standard Library are assumed to be qualified with <code>std::</code>.</p>
65
119
66
120
<p>Extensions that are expected to eventually be added to an existing header
@@ -72,60 +126,6 @@ <h1>Namespaces and headers</h1>
72
126
</pre>
73
127
</cxx-section>
74
128
75
-
<cxx-sectionid="parallel.general.defns">
76
-
<h1>Terms and definitions</h1>
77
-
78
-
<p>For the purposes of this document, the terms and definitions given in the C++ Standard and the following apply.</p>
79
-
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
-
82
-
<p>
83
-
Parallel algorithms access objects indirectly accessible via their arguments by invoking the following functions:
84
-
85
-
<ul>
86
-
<li>
87
-
All operations of the categories of the iterators that the algorithm is instantiated with.
88
-
</li>
89
-
90
-
<li>
91
-
Functions on those sequence elements that are required by its specification.
92
-
</li>
93
-
94
-
<li>
95
-
User-provided function objects to be applied during the execution of the algorithm, if required by the specification.
96
-
</li>
97
-
98
-
<li>
99
-
Operations on those function objects required by the specification.
100
-
101
-
<cxx-note>
102
-
See clause 25.1 of <em>C++ Standard Algorithms Library</em>.
103
-
</cxx-note>
104
-
</li>
105
-
</ul>
106
-
107
-
These functions are herein called <em>element access functions</em>.
108
-
109
-
<cxx-example>
110
-
The <code>sort</code> function may invoke the following element access functions:
111
-
112
-
<ul>
113
-
<li>
114
-
Methods of the random-access iterator of the actual template argument, as per 24.2.7, as implied by the name of the
0 commit comments