|
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