Skip to content

Commit 1837cd0

Browse files
committed
Reorganize introductory structure as required by new ISO rules
1 parent ae2a065 commit 1837cd0

File tree

1 file changed

+95
-95
lines changed

1 file changed

+95
-95
lines changed

general.html

Lines changed: 95 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,120 @@
1-
<cxx-clause id="parallel.general">
2-
<h1>General</h1>
3-
<cxx-section id="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-clause id="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-clause id="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 <a href="http://www.open-std.org/jtc1/sc22/wg21/prot/14882fdis/n3937.pdf">N3937</a>.</cxx-footnote>,
31+
<cite>Programming Languages — C++</cite>
32+
<cxx-foreign-index id="cxx" src="cxx_N3797_index.json" name="C++14"></cxx-foreign-index></li>
33+
</ul>
34+
35+
<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-ref in="cxx" to="library"></cxx-ref>) is included into this
43+
Technical Specification by reference.</p>
44+
</cxx-clause>
2245

23-
<cxx-section id="parallel.general.references">
24-
<h1>Normative references</h1>
46+
<cxx-clause id="parallel.defns">
47+
<h1>Terms and definitions</h1>
2548

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:
3055

3156
<ul>
32-
<li>ISO/IEC 14882:—<cxx-footnote>To be published. Section references are relative to <a href="http://www.open-std.org/jtc1/sc22/wg21/prot/14882fdis/n3937.pdf">N3937</a>.</cxx-footnote>,
33-
<cite>Programming Languages — C++</cite>
34-
<cxx-foreign-index id="cxx" src="cxx_N3797_index.json" name="C++14"></cxx-foreign-index></li>
57+
<li>
58+
All operations of the categories of the iterators that the algorithm is instantiated with.
59+
</li>
60+
61+
<li>
62+
Functions on those sequence elements that are required by its specification.
63+
</li>
64+
65+
<li>
66+
User-provided function objects to be applied during the execution of the algorithm, if required by the specification.
67+
</li>
68+
69+
<li>
70+
Operations on those function objects required by the specification.
71+
72+
<cxx-note>
73+
See clause 25.1 of <em>C++ Standard Algorithms Library</em>.
74+
</cxx-note>
75+
</li>
3576
</ul>
3677

37-
<p>ISO/IEC 14882:— is herein called the <dfn>C++ Standard</dfn>.
38-
The library described in ISO/IEC 14882:— clauses 17-30 is herein called
39-
the <dfn>C++ Standard Library</dfn>. The C++ Standard Library components described in
40-
ISO/IEC 14882:— clauses 25, 26.7 and 20.7.2 are herein called the <dfn>C++ Standard
41-
Algorithms Library</dfn>.</p>
78+
These functions are herein called <em>element access functions</em>.
4279

43-
<p>Unless otherwise specified, the whole of the C++ Standard's Library
44-
introduction (<cxx-ref in="cxx" to="library"></cxx-ref>) is included into this
45-
Technical Specification by reference.</p>
46-
</cxx-section>
80+
<cxx-example>
81+
The <code>sort</code> function may invoke the following element access functions:
82+
83+
<ul>
84+
<li>
85+
Methods of the random-access iterator of the actual template argument, as per 24.2.7, as implied by the name of the
86+
template parameters <code>RandomAccessIterator</code>.
87+
</li>
4788

89+
<li>
90+
The <code>swap</code> function on the elements of the sequence (as per 25.4.1.1 [sort]/2).
91+
</li>
92+
93+
<li>
94+
The user-provided <code>Compare</code> function object.
95+
</li>
96+
</ul>
97+
</cxx-example>
98+
</cxx-clause>
99+
100+
<cxx-clause id="parallel.general">
101+
<h1>General</h1>
48102
<cxx-section id="parallel.general.namespaces">
49103
<h1>Namespaces and headers</h1>
50104

51105
<p>Since the extensions described in this Technical Specification are
52106
experimental and not part of the C++ Standard Library, they should not be
53107
declared directly within namespace <code>std</code>. Unless otherwise specified, all
54108
components described in this Technical Specification are declared in namespace
55-
<code>std::experimental::parallel::<ins>v2</ins><del>v1</del></code>.</p>
109+
<code>std::experimental::parallel::v2</code>.</p>
56110

57111
<cxx-note>
58112
Once standardized, the components described by this Technical Specification are expected to be promoted to namespace <code>std</code>.
59113
</cxx-note>
60114

61115
<p>Unless otherwise specified, references to such entities described in this
62116
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++
64118
Standard Library are assumed to be qualified with <code>std::</code>.</p>
65119

66120
<p>Extensions that are expected to eventually be added to an existing header
@@ -72,60 +126,6 @@ <h1>Namespaces and headers</h1>
72126
</pre>
73127
</cxx-section>
74128

75-
<cxx-section id="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
115-
template parameters <code>RandomAccessIterator</code>.
116-
</li>
117-
118-
<li>
119-
The <code>swap</code> function on the elements of the sequence (as per 25.4.1.1 [sort]/2).
120-
</li>
121-
122-
<li>
123-
The user-provided <code>Compare</code> function object.
124-
</li>
125-
</ul>
126-
</cxx-example>
127-
</cxx-section>
128-
129129
<cxx-section id="parallel.general.features">
130130
<h1>Feature-testing recommendations</h1>
131131
<p>An implementation that provides support for this Technical Specification shall define the feature test macro(s) in Table 1.</p>

0 commit comments

Comments
 (0)