|
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 | | - |
100 | 1 | <cxx-clause id="parallel.general"> |
101 | 2 | <h1>General</h1> |
102 | 3 | <cxx-section id="parallel.general.namespaces"> |
|
0 commit comments