Skip to content

Commit 895e6fd

Browse files
committed
Reorganize first few clauses into separate HTML files
1 parent 1837cd0 commit 895e6fd

File tree

5 files changed

+102
-99
lines changed

5 files changed

+102
-99
lines changed

general.html

-99
Original file line numberDiff line numberDiff line change
@@ -1,102 +1,3 @@
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>
45-
46-
<cxx-clause id="parallel.defns">
47-
<h1>Terms and definitions</h1>
48-
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:
55-
56-
<ul>
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>
76-
</ul>
77-
78-
These functions are herein called <em>element access functions</em>.
79-
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>
88-
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-
1001
<cxx-clause id="parallel.general">
1012
<h1>General</h1>
1023
<cxx-section id="parallel.general.namespaces">

main.html

+3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
<body unresolved="">
99

1010
<cxx-include href="front_matter.html"></cxx-include>
11+
<cxx-include href="scope.html"></cxx-include>
12+
<cxx-include href="normative_references.html"></cxx-include>
13+
<cxx-include href="terms_and_definitions.html"></cxx-include>
1114
<cxx-include href="general.html"></cxx-include>
1215
<cxx-include href="execution_policies.html"></cxx-include>
1316
<cxx-include href="exceptions.html"></cxx-include>

normative_references.html

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<cxx-clause id="parallel.references">
2+
<h1>Normative references</h1>
3+
4+
<p>The following referenced document is indispensable for the
5+
application of this document. For dated references, only the
6+
edition cited applies. For undated references, the latest edition
7+
of the referenced document (including any amendments) applies.</p>
8+
9+
<ul>
10+
<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>,
11+
<cite>Programming Languages — C++</cite>
12+
<cxx-foreign-index id="cxx" src="cxx_N3797_index.json" name="C++14"></cxx-foreign-index></li>
13+
</ul>
14+
15+
<p>ISO/IEC 14882:— is herein called the <dfn>C++ Standard</dfn>.
16+
The library described in ISO/IEC 14882:— clauses 17-30 is herein called
17+
the <dfn>C++ Standard Library</dfn>. The C++ Standard Library components described in
18+
ISO/IEC 14882:— clauses 25, 26.7 and 20.7.2 are herein called the <dfn>C++ Standard
19+
Algorithms Library</dfn>.</p>
20+
21+
<p>Unless otherwise specified, the whole of the C++ Standard's Library
22+
introduction (<cxx-ref in="cxx" to="library"></cxx-ref>) is included into this
23+
Technical Specification by reference.</p>
24+
</cxx-clause>
25+

scope.html

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
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+

terms_and_definitions.html

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<cxx-clause id="parallel.defns">
2+
<h1>Terms and definitions</h1>
3+
4+
<p>For the purposes of this document, the terms and definitions given in the C++ Standard and the following apply.</p>
5+
6+
<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>
7+
8+
<p>
9+
Parallel algorithms access objects indirectly accessible via their arguments by invoking the following functions:
10+
11+
<ul>
12+
<li>
13+
All operations of the categories of the iterators that the algorithm is instantiated with.
14+
</li>
15+
16+
<li>
17+
Functions on those sequence elements that are required by its specification.
18+
</li>
19+
20+
<li>
21+
User-provided function objects to be applied during the execution of the algorithm, if required by the specification.
22+
</li>
23+
24+
<li>
25+
Operations on those function objects required by the specification.
26+
27+
<cxx-note>
28+
See clause 25.1 of <em>C++ Standard Algorithms Library</em>.
29+
</cxx-note>
30+
</li>
31+
</ul>
32+
33+
These functions are herein called <em>element access functions</em>.
34+
35+
<cxx-example>
36+
The <code>sort</code> function may invoke the following element access functions:
37+
38+
<ul>
39+
<li>
40+
Methods of the random-access iterator of the actual template argument, as per 24.2.7, as implied by the name of the
41+
template parameters <code>RandomAccessIterator</code>.
42+
</li>
43+
44+
<li>
45+
The <code>swap</code> function on the elements of the sequence (as per 25.4.1.1 [sort]/2).
46+
</li>
47+
48+
<li>
49+
The user-provided <code>Compare</code> function object.
50+
</li>
51+
</ul>
52+
</cxx-example>
53+
</cxx-clause>
54+

0 commit comments

Comments
 (0)