Skip to content
Prev Previous commit
Next Next commit
Reorganize first few clauses into separate HTML files
  • Loading branch information
jaredhoberock committed Jun 1, 2017
commit 895e6fd54e3609c82443021af5d7957c661964a2
99 changes: 0 additions & 99 deletions general.html
Original file line number Diff line number Diff line change
@@ -1,102 +1,3 @@
<cxx-clause id="parallel.scope">
<h1>Scope</h1>
<p>This Technical Specification describes requirements for implementations of an
interface that computer programs written in the C++ programming language may
use to invoke algorithms with parallel execution. The algorithms described by
this Technical Specification are realizable across a broad class of
computer architectures.</p>

<p>This Technical Specification is non-normative. Some of the functionality
described by this Technical Specification may be considered for standardization
in a future version of C++, but it is not currently part of any C++ standard.
Some of the functionality in this Technical Specification may never be
standardized, and other functionality may be standardized in a substantially
changed form.</p>

<p>The goal of this Technical Specification is to build widespread existing
practice for parallelism in the C++ standard algorithms library. It gives
advice on extensions to those vendors who wish to provide them.</p>
</cxx-clause>

<cxx-clause id="parallel.references">
<h1>Normative references</h1>

<p>The following referenced document is indispensable for the
application of this document. For dated references, only the
edition cited applies. For undated references, the latest edition
of the referenced document (including any amendments) applies.</p>

<ul>
<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>,
<cite>Programming Languages — C++</cite>
<cxx-foreign-index id="cxx" src="cxx_N3797_index.json" name="C++14"></cxx-foreign-index></li>
</ul>

<p>ISO/IEC 14882:— is herein called the <dfn>C++ Standard</dfn>.
The library described in ISO/IEC 14882:— clauses 17-30 is herein called
the <dfn>C++ Standard Library</dfn>. The C++ Standard Library components described in
ISO/IEC 14882:— clauses 25, 26.7 and 20.7.2 are herein called the <dfn>C++ Standard
Algorithms Library</dfn>.</p>

<p>Unless otherwise specified, the whole of the C++ Standard's Library
introduction (<cxx-ref in="cxx" to="library"></cxx-ref>) is included into this
Technical Specification by reference.</p>
</cxx-clause>

<cxx-clause id="parallel.defns">
<h1>Terms and definitions</h1>

<p>For the purposes of this document, the terms and definitions given in the C++ Standard and the following apply.</p>

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

<p>
Parallel algorithms access objects indirectly accessible via their arguments by invoking the following functions:

<ul>
<li>
All operations of the categories of the iterators that the algorithm is instantiated with.
</li>

<li>
Functions on those sequence elements that are required by its specification.
</li>

<li>
User-provided function objects to be applied during the execution of the algorithm, if required by the specification.
</li>

<li>
Operations on those function objects required by the specification.

<cxx-note>
See clause 25.1 of <em>C++ Standard Algorithms Library</em>.
</cxx-note>
</li>
</ul>

These functions are herein called <em>element access functions</em>.

<cxx-example>
The <code>sort</code> function may invoke the following element access functions:

<ul>
<li>
Methods of the random-access iterator of the actual template argument, as per 24.2.7, as implied by the name of the
template parameters <code>RandomAccessIterator</code>.
</li>

<li>
The <code>swap</code> function on the elements of the sequence (as per 25.4.1.1 [sort]/2).
</li>

<li>
The user-provided <code>Compare</code> function object.
</li>
</ul>
</cxx-example>
</cxx-clause>

<cxx-clause id="parallel.general">
<h1>General</h1>
<cxx-section id="parallel.general.namespaces">
Expand Down
3 changes: 3 additions & 0 deletions main.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
<body unresolved="">

<cxx-include href="front_matter.html"></cxx-include>
<cxx-include href="scope.html"></cxx-include>
<cxx-include href="normative_references.html"></cxx-include>
<cxx-include href="terms_and_definitions.html"></cxx-include>
<cxx-include href="general.html"></cxx-include>
<cxx-include href="execution_policies.html"></cxx-include>
<cxx-include href="exceptions.html"></cxx-include>
Expand Down
25 changes: 25 additions & 0 deletions normative_references.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<cxx-clause id="parallel.references">
<h1>Normative references</h1>

<p>The following referenced document is indispensable for the
application of this document. For dated references, only the
edition cited applies. For undated references, the latest edition
of the referenced document (including any amendments) applies.</p>

<ul>
<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>,
<cite>Programming Languages — C++</cite>
<cxx-foreign-index id="cxx" src="cxx_N3797_index.json" name="C++14"></cxx-foreign-index></li>
</ul>

<p>ISO/IEC 14882:— is herein called the <dfn>C++ Standard</dfn>.
The library described in ISO/IEC 14882:— clauses 17-30 is herein called
the <dfn>C++ Standard Library</dfn>. The C++ Standard Library components described in
ISO/IEC 14882:— clauses 25, 26.7 and 20.7.2 are herein called the <dfn>C++ Standard
Algorithms Library</dfn>.</p>

<p>Unless otherwise specified, the whole of the C++ Standard's Library
introduction (<cxx-ref in="cxx" to="library"></cxx-ref>) is included into this
Technical Specification by reference.</p>
</cxx-clause>

20 changes: 20 additions & 0 deletions scope.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<cxx-clause id="parallel.scope">
<h1>Scope</h1>
<p>This Technical Specification describes requirements for implementations of an
interface that computer programs written in the C++ programming language may
use to invoke algorithms with parallel execution. The algorithms described by
this Technical Specification are realizable across a broad class of
computer architectures.</p>

<p>This Technical Specification is non-normative. Some of the functionality
described by this Technical Specification may be considered for standardization
in a future version of C++, but it is not currently part of any C++ standard.
Some of the functionality in this Technical Specification may never be
standardized, and other functionality may be standardized in a substantially
changed form.</p>

<p>The goal of this Technical Specification is to build widespread existing
practice for parallelism in the C++ standard algorithms library. It gives
advice on extensions to those vendors who wish to provide them.</p>
</cxx-clause>

54 changes: 54 additions & 0 deletions terms_and_definitions.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<cxx-clause id="parallel.defns">
<h1>Terms and definitions</h1>

<p>For the purposes of this document, the terms and definitions given in the C++ Standard and the following apply.</p>

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

<p>
Parallel algorithms access objects indirectly accessible via their arguments by invoking the following functions:

<ul>
<li>
All operations of the categories of the iterators that the algorithm is instantiated with.
</li>

<li>
Functions on those sequence elements that are required by its specification.
</li>

<li>
User-provided function objects to be applied during the execution of the algorithm, if required by the specification.
</li>

<li>
Operations on those function objects required by the specification.

<cxx-note>
See clause 25.1 of <em>C++ Standard Algorithms Library</em>.
</cxx-note>
</li>
</ul>

These functions are herein called <em>element access functions</em>.

<cxx-example>
The <code>sort</code> function may invoke the following element access functions:

<ul>
<li>
Methods of the random-access iterator of the actual template argument, as per 24.2.7, as implied by the name of the
template parameters <code>RandomAccessIterator</code>.
</li>

<li>
The <code>swap</code> function on the elements of the sequence (as per 25.4.1.1 [sort]/2).
</li>

<li>
The user-provided <code>Compare</code> function object.
</li>
</ul>
</cxx-example>
</cxx-clause>